Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Что насчёт таких языков программирования как Go, Rust, Scala и Clojure? Насколько актуальны ли они сейчас? Являются ли они перспективными? Стоит ли изучать какой-либо вышеперечисленный язык в данный момент?
>>1156282 (OP) Ты нахуевертил все в одну кучу. Go и Rust это языки для хипстеров-системщиков, которые хотят прокачанную сишку для написания скорострельных хуевин. Scala и Closure для функциональных выблядков. Если в порядке популярности - scala самая актуальная, go поменьше, остальные два пидора - наименее популярны. Вкатиться легче всего из этого в Go и Rust. Вангую выебщика, который начитался всего подряд.
>>1156282 (OP) Вкатывал на такие редко берут, на скалу чаще жабапидоров с опытом берут, т.к. их легче найти, чем компетентного в скала человека. Короче, не выебуйся и дрочи, где работа есть, потом перекатишься в эту хуйню, если будет желание
>>1156300 >системное программирование со сборщиком мусора >не отличает closure от clojure Зато свое охуенно важное мнение обо всем имеет. Типикал кретин-кукаретик. Не отвечай на этот пост (но ты ведь не сможешь).
>>1156300 Go и rust вообще не пересекаются по целевой аудитории. Rust - современный си с плюшками, go - для одноклеточных веб-макак, что-то на уровне джавы, язык, созданный, чтобы создавать рабочие места для малообразованных взаимозаменяемых кодерков.
>>1156634 в середине нулевых у крестов была неоднозначная ситуация: казалось что все, еще чуть чуть и он станет как фортран, ада - его будут использовать но все меньше и меньше, произойдет стагнация но вместо этого определенные люди и организации собрались с силами, и сделали modern с++, вот вся эта движуха связанная со стандартизацией (глять сколько в месяц сейчас отправляется proposals в комитет), с новыми высокоуровневыми библиотеками (расширение стандартной библиотеки, но все что в boost и не только), просто огромная конференция cppcon плюс ее локальные конференции, можно сказать что вокруг языка сформировалось новое комьюнити НО все это происходит в среде в которой уже существует огромное окружение - компляторы, иде, туллчейны, множество утилит, дающих фундамент И все это происходит с сохранением обратной совместимости, вплоть до сумашедших вещей, типа того что код написанный 30-40 лет назад до сих пор работает, портируется, модернизируется, это тоже дает фундамент
>>1156361 >время показывает, то что все, что создается "на замену" с++, этот самый с++ переживает.. >живучий, зараза Печально это. Есть нормальный такой D, который вполне смог бы заменить плюсы, но не получил отклика у общественности. Язык хороший, а либ нет
>>1156799 Нельзя пофиксить то, что сломано бай дизайн. Из крестов нельзя сделать конфетку, ибо они бай дизайн говно, кресты - это нагромождение кривых плохо спроектированных костылей поверх крайне хуевого плохо спроектированного языка си.
Раст не фонтан, конечно, но уже огромный шаг вперед, с его поддержкой линейных типов, внятного параметрического полиморфизма и макросами.
>>1156913 У д вся стандартная либа ориентирована на использование сборщика мусора. А как managed язык он не нужен, потому что сосет у жаб, шарпов, хаскилей, окамлов, лиспов.
>>1157518 Ты стандарт си читал, кукаретик не-смузиеб?
Стандарт си (в отличие от того си, что писали керниган с ричи) пытается определить язык, который
1) низкоуровневый, близок к железу
2) оптимизируется компилятором
3) портабельный
Любому не дебилу (ты-то определенно дебил) ясно, что любые два пункта исключают третий.
В итоге имеем что? Имеет strict aliasing, кучу undefined behaviour, неспособность компилятора упаковать структуры и.т.д.
В итоге язык и не портабельный (привет, сотни ifdef), и не максимально быстрый (привет, неспособность оптимизировать доступ к массивам, упаковку структур и.т.д, в итоге сосет фортрану и требует ручных оптимизаций с учетом UB), и не низкоуровневый, ибо компилятор все оптимизирует, и ты даже представить себе не можешь, во что оно все скомпилится, разве что вставляя ассемблерные листинги.
Ну про то, что язык имеет хуевейшую систему типов, слабую типизацию, хуевейшую систему макросов эва, NULL, упоротую стандартную библиотеку, не имеет никакого внятного механизма исключений (напоминаю, что большинство железок имеют трапы и прервания), полное отсутствие модульности, тупая текстовая подстановка текстового файла с интерфейсом вместо инклюда модуля.
И эта параша появилась в одно десятилетие с ML и Modula.
>>1157755 >чтоб оптимизировать размер данных или доступ. ну расположил их в нужном порядке дальше, делов то? мне нужно чтобы на два байта от начала структуры были данные, нахуй мне твоя упаковка?
>>1157712 >не имеет никакого внятного механизма исключений yне нужны, проблемы ос и железа >систему типов, основных типов более чем достаточно >слабую типизацию это очень хлорошая типизация >хуевейшую систему макросов эва макросы нужно избегать >NULL очень хорошо > упоротую стандартную библиотеку, ты скозал?
>>1157766 И компилятор не сможет засунуть четыре идущих подряд флота в один регистр. Так еще и пустое место между полями воткнет, дезигн же, расставляй все руками. Правда, компилятор все равно потом все оптимизирует, только не то, что надо, зато всякий стрикт элиасинг. Вот как стрикт элиасинг уживается у си блядей в голове с неупакованными структурами, я ума не приложу. Программист на си - это умственное заболевание, не иначе, что-то вроде шизы.
Даже автор NULL считает нулл ошибкой на миллион долларов, но си-дебил считает, что это очень хорошо. Возникает ли еще у кого-нибудь сомнения в том, что данный индивид умственно неполноценен?
>>1157776 >И компилятор не сможет засунуть четыре идущих подряд флота в один регистр какой нахуй регистр, наркоман? флоты это плавающее число, если ты про ячейки памяти, то зависит от разрядности пека
>>1157782 а, я понял, ты из тех даунов, кто хочет 64битные вычисления портировать на 8битные калькуляторы. нормальные программисты пишут код ориентируясь на платформу, поэтому для каждой разрядности будут свои ньюансы
>>1157793 >Там может быть все, что угодно, от памяти до отмапленных регистров, портов и.т.д. я не спрашиваю, что там лежит, я спрашиваю, что будет при обращение по этому адресу.
>>1157801 NULL - это соглашение всего лишь. Люди согласились в юзермодном коде не использовать адреса от 0 до N (например, до 4096, т.е., одну страницу). И поэтому можно считать NULL невалидным указателем. А можно хакнуть ОС и компилятор, и сделать так, чтобы инвалидным указателем считался адрес 0xdeadcafe.
>>1158324 Удваиваю, если ты тот анон, что тратил в этой ветке своё время на просвещение этого дегрода, то низкий поклон тебе, хотя я бы таких в загон определял с кастрацией и лишением гражданских прав.
>>1158362 >что не так то? Автоматическое приведение с проёбом точности, а то и значения между целым и типом с плавающей запятой, например. Математические операции над символами, и опять же их автоматическое приведение - не меньшая дикость. Сюда же недоделанный enum, по сути сугубо косметическое явление.
И да, ещё наличие пост/прединкремента без оговоренного в стандарте порядка вычисления, с аргументами функции - таже дрянь. Ну и широкая практика использования битовых операторов над целым типом за неимением специального.
>>1158481 >как ты 4 байтовое к 2 байтовому приведешь, без потери? Можно использовать функцию возвращающую успешность подобного приведения и принимающую указатель на результат, нет даже ничего страшного чтобы она была глубоко прошитой в язык и работала со всеми встроенными типами. Можно просто требовать явного преобразования в каждом сомнительном случае. Автоматическое же приведение лишь увеличивает количество тупых ошибок из-за невнимательности.
>>1158484 >с асмом не работал Сам спросил - сам ответил. Ассемблер не претендует на переносимость такую как у си. Порочность битовых операций (над числом, а не вообще) в том что они насилуют само представление числа как некоторой математической абстракции и привязываются к его конкретному машинному представлению. В целом было бы интересно посмотреть как си транслировал бы подобное битоёбство для машины на троичной системе счисления. Ну и вообще, тогда уже паскаль два года как был с его типом-множеством, не знаешь сам - посмотри как у других сделанно, хуле, никто стыдить за это не стал бы.
>>1158510 >Можно использовать функцию возвращающую успешность подобного приведения и принимающую указатель на результат зачем? си должен и есть максимально простой язык, зачем вот это все? не нужно тащить туда сахар
>>1158510 >на троичной системе счисления а на 5 ричной? нельзя заложить на все случаи жизни, да и незачем. выход один - путь жабы, есть вм на ней язык, язык портируем, вм нет.
>>1158525 Любой высокоуровневый язык портируемый, для этого не нужна вм, достаточно четко определенной семантики. Go, Rust, Swift, OCaml, Haskell - портируемые языки без vm.
>>1158519 >не нужно тащить туда сахар Автоматом приводится хуй знает что к хуй знает чему хуй знает как, причём задолго до ПХП, это не сахар ли? Да и хуй с ней, просто запретить бы подобное без явного указания, и заебись было б.
>>1158525 >а на 5 ричной Такая же точно хуйня выйдет. Да и не надо на все случаи закладываться, ввести отдельный тим set, для которого и определить пересечение, симметрическую разность, проверку на вхождение и прочие операции, да и никакой вм бы не понадобилось.
Я для себя поинтересуюсь, без попытки обидеть: у вас к клавиатурой что-то или тут некая идейная позиция в неиспользовании символов верхнего регистра, обет может, или послушание какое-нибудь?
>>1158531 >неиспользовании символов верхнего регистра, обет может, или послушание какое-нибудь? двачую со смарта, заглавная буква ниудобно >Автоматом приводится хуй знает что к хуй знает чему я знаю разрядность и есть таблицы приведентя под платформу, автомат будет только портить >никакой вм бы не понадобилось. код должен выжимать из платформы все что бы быть быстрым, 100% переносимость не возможна и не нужна.
>>1158730 Да этот мудак уже и в растотреде этим говном всех обмазывает. Лично для меня, главный недостаток макросов заключается в том, что текущий тулинг их не поддерживает от слова охуели блять совсем.
Rust пробует новый подход к выражению времён жизни переменных. К сожалению привычного блочного синтаксиса мало, поэтому здесь всякие борроучекеры и сложность для вкатывальщиков. При этом раст не пытается быть маргинальным как ФП и пересмотреть стратегию вычислений полностью, а остаётся императивным с определёнными затычками. Можно считать что здесь в компилятор встроили очень строгий линтер. Собственно этот новый подход — основная причина почему понадобился отдельный язык.
Go это быстрый питон и C++ для тупых, созданный компанией гугле для нужд компании гугле. Требование: он должен учиться без наебалова за 21 день, а не как C++ в известном комиксе (поэтому не будет дженериков). Питон страдает от трудностей распараллеливания, поэтому здесь ввели каналы и горутины прямо на уровне синтаксиса, с кучей автоматики. А статическая типизации нужна только для скорости. Go идеален для написания например вебсокетных чатиков.
Scala и Clojure очень мало сталкивался. Говорят это крайне замудрёные языки, но при этом лучше чем голая джава. Созданы и используются выёбщиками от мира энтерпрайза на джаве.
>>1158750 По сравнению со всем. Я имею в виду тулинг, jvm на старте, ide. Оно жрет тонну памяти, тормозит и вообще создает отвратное ощущение. Нескучный синтаксис типа кложуры пытается решить проблему говнодизайна джавы как языка, но он не может решить фундаментальную ущербность джавы как экосистемы.
>>1158748 Неудивительно. В джаве каждый объект требует перехода по указателю. Там нельзя например делать плотно пакованные структуры. Соответственно становится неэффективен кэш процессора.
>>1156605 ты так говоришь будто кресты это не хуйня для червя пидора. они конченые их уже не спасти, раст только за счёт этого и взлетает потихоньку - трудно быть уебищнее крестов
>>1158791 не понимаю зачем так обсирать кресты. Люди с позитивным мышлением это понимают и всё равно двигают их вперёд. Потому что по другому нельзя. Зачем обсирать?
>>1158793 Слишком большой багаж обратной совместимости. Выучить кресты это лет 5 жизни нужно отдать запоминая всякую ерунду с undefined behaviour/spiral rules и прочие логи ошибок в темплейтах. За это же время тот же вкатывальщик в раст/го уже десяток подобных проектов напишет. Знаешь кресты - пожайлуйста, пользуйся дальше. Не знаешь - лучше даже не пытайся.
>>1158793 В том то и дело можно по-другому - писать на чистой сишке или на расте. Обсирают, потому-что у всех кто сталкивается с крестами (у кого кресты не первый и не основной язык), обычно шок от этого пиздеца, который там. Это примерно как состояние аффекта и шока, ты не можешь себе поверить типа "да ну нахуй! зачем?! как?!"
>писать на чистой сишке а я не пишу уже потому что вместо макросов удобней использовать шаблоны потому что есть готовый динамический полиморфизм в виде виртуальных функций, не надо городить собственных vtable и по многим другим причинам бекграунд примерно 15 лет, если что
>>1158799 >на расте та же проблема что и у D, что и у других "убийц" крестов: неразвитая инфраструктура, те все что вокруг языка компиляторы, отладчики, иде, утилиты статического и динамического анализа, книги, сорцы, комьюнити и десятки прочих вещей, утилит, знаний
>>1158900 Проблемой D и ему подобных убийц C++ лишь в том, что они не способны были предложить ничего, чтобы решить проблему безопасности работы с памятью, кроме GC. И как такие языки могли убить язык, одной из важнейших фич которого является отсутствие GC?
>>1158793 я на доске не обсираю с++, например моя позиция такова: на с++ слишком мало реальных вакансий, вакансий для начинающих нет в принципе поэтому и не советую вкатывальщикам инвестировать свое время в изучение крестов, для них это будет сильным разочарованием тем более, они будут конкурировать с некоторыми студентами профильных вузов, которые несколько лет уже поездили по олимпиадам, задрочили сишечку и кресты в вузах
>>1158739 >golang >(поэтому не будет дженериков) поясните, кто в курсе, как в го делают adt? по старинке на интерфейсах что ли? дык даже в той же яве все равно вконце концов дженерики сделали
>>1158919 B го2.0 скорее всего тоже сделают, т.к. это самая востребованная фича сейчас. Просто гугловцы хотят и рыбку съесть и нахуй сесть, но пока не получается.
>>1158919 Никак. Пихают все в Object и велосипедят свою рантаймовую систему типов, прям как в си. Современный, модный, молодежный язык же. Эстетика 80-ых нынче в тренде.
>>1158930 хм, ну в си adt делали разными способами на void* - получалось выключеная типизация, но отладчики работали на union или на структурах делали variant - получалось с типизацией, с работающим отладчиком, но с ограниченным набором типов на макросах - сохранялась типизация, но отладчиком нельзя было пользоваться уже либо делали через интерфейсы, те через структуры с указателями на функции, тоже вариант, но, блин, код получался одним из самых сложных для понимания когда в с++ добавили шаблоны, стало гораздо лучше adt делать, более того, шаблоны позволили обернуть и старые решения (типа atl для com) генерики в яве и шарпе тоже ввели не сразу, но это было необходимое решение
>>1159047 Если писать ОС на джаве, то если только AOT-компилятором собирать. Или ты собрался ОС интерпретировать, а её части JIT'ом во время исполнения собирать?
>>1158753 >тулинг Что ты вкладываешь в это понятие? >jvm на старте Быстрее чем скриптодрисня. Код крутится - JIT мутится. После прогрева уделывает чуть ли не Сишку. >ide Используй Vim/Emacs. Будет хуйня вместо интроспекций и рефакторинга, зато быстро. >Оно жрет тонну памяти Мне не жалко. Зато получаю охуенный интсрумент для разработки (смотри предыдущий пункт). >отвратное ощущение Да у вас просто непереносимость Java, дорогой мой пациент. С этого и стоило начинать.
Да и вообще, если конкретно про кложу говорить, то
~> time lumo -e '(println "hello world")' hello world lumo -e '(println "hello world")' 0.75s user 0.05s system 129% cpu 0.617 total
С жвм тормознуто конечно получается, но там и юзкейс другой. Тебе же не надо скрипты или десктоп на жвм делать, и репл и серваки работают по принципу "один раз запустил и оно работает", для таких случаев жвм идеальна.
>>1159113 >Репл же как раз тем и хорош, что жвм с тормознутым запуском ты буквально один раз за день запускаешь и она у тебя висит, перезапускать ниче не надо. Как бы jvm тормозит на первых порах пока код jit-ом не соберется. Как ты jit'ом код в repl собирать собрался ума не приложу. В repl банально для jit профиль не собрать