Z>мне после свифта сишарп кажется неуклюжим, громоздким и излишним.
C# не юзал, но знаю, что прикладная библиотека .NET там могучая. Как некий полностью переосмысленный MFC. Теперь это выглядит не как ОО-надстройка над WinAPI, а полностью осмысленная полезная функциональность, с дружественным для разработчика интерфейсом.
.NET, правда, можно и из C++ юзать, хоть и через одно место.
Здравствуйте, HrorH, Вы писали:
HH> B>В молодости случайно купил книжку по Forth и получил огромное удовольствие от его изучения. Необычный, минималистичный, расширяемый — на фоне Pascal и Basic это было очень интересно. Но поработать с ним к сожалению не пришлось. HH> B>Что скажете? HH> В молодости случайно купил книжку по Haskell и получил огромное удовольствие от его изучения.
А вот я покупал в юности более другие книги для получения удовльствия ... )))
Здравствуйте, Basil2, Вы писали:
B>В молодости случайно купил книжку по Forth и получил огромное удовольствие от его изучения.
эээ... вы понимаете, что языкодрочерство — это ламерский путь? Изучи хоть 50 языков, в голове особо много не прибавится. Профессионализм разработчика — далеко не язык, а ПЛАТФОРМА, которую он умеет юзать на 100%.
B>Основные кандидаты сейчас это F# и Rust. F# — потому что название напоминает Forth Ну и это функциональный язык
Другими словами, "язык, ортогональный человеческому мышлению и потому всё ещё сосущий на обочине мэйнстрима".
B>Rust — потому что он позиционируется как замена С++
Чушь. Никогда им не был и не будет. Rust — это просто поделие, от него индустрии ни тепло, ни холодно и он НИКОГДА не будет сколь угодно значимым.
B>Что скажете?
На моём веку из практических языков впечатлил и вдохновил только Nemerle. Я знаю проблемы Немерли, но вот спроси меня, "не будь C#, тогда что?" — однозначно Немерля. Великолепный язык, который как жемчужина, упавшая в дерьмо обыденности — лежит, отсвечивает и ждёт своего коммерческого носителя. Наимощнейший язык в .NET, незаслуженно игнорируемый быдломассой. Будь хотя бы у 50% разработчиков мозги, этот язык взлетел бы в считанные месяцы.
Вот. Я сказал.
Здравствуйте, kaa.python, Вы писали:
KP>Я буду банален, но учить язык толку вообще ноль, особенно если целью выступает расширение возможностей поиска работы. Надо с предметной областью разбираться и из неё уже брать язык.
Категорически не согласен. Примерно половину языков я изучил для хобби, а не для профессионального использования. На работе жизнь не заканчивается.
Здравствуйте, kaa.python, Вы писали:
KP>Rust не позицируется как замена C++, максимум замена C.
Я бы сказал что Rust это как будто из С снова делают С++, только с учетом опыта делания С++.
KP>Кроме того, если C++ в голове не помещается, то Rust и подавно не влезет, там своих заморочек вагон и они не менее заковыристые. Возьми что-то попроще, тот же Go, я его вообще всем последнее время советую
Я думал о Go, но что-то он совсем не глянулся. С одной стороны странноватый синтаксис, с другой — все тоже самое как в С++. В Расте все же виден некий стержень, вокруг которого все делается.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, Kswapd, Вы писали:
K>Мне это удалось с Go. Минималистичный, лаконичный, выразительный, мощный. И избавлен от детских болезней C и C++, что особенно восхитило. Очарованный Go, я бросил довольно прибыльную удалёнку на C++ и устроился на вдвое меньшие деньги в офисе)), но нисколько не жалею.
Я думал о Go, но что-то он совсем не глянулся. С одной стороны странноватый синтаксис, с другой — все тоже самое как в С++. В Расте все же виден некий стержень, вокруг которого все делается.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, bexab, Вы писали:
B>Дождаться pattern-matching в Go — и можно пробывать
Именно его отсутствие меня в Go и смутило. Столько разговоров что крутой выразительный язык, а как ткнулся в switch — так обычные плюсы, ничего особенного...
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
S>>C# очень мощный язык и развивается. Берет нужное из разных языков.
K>Звучит устрашающе . В результате нечто переусложнённое и необъятное, угадал? (C# никогда не изучал и знаю про него только то, что он возник как клон Джавы)
C# на удивление практичен и прагматичен. Там есть, конечно, наследие со времен «мы как Java, только получше», но они явно стараются сделать язык приятным для использования в рамках изначальных ограничений.
B>Я думал о Go, но что-то он совсем не глянулся. С одной стороны странноватый синтаксис, с другой — все тоже самое как в С++.
Ну как же. Go — отрицание C++ . C++ пропитан магией (один принцип SFINAE чего стоит) — в Go всё (ну, почти всё)) явно и без сюрпризов. В C++ ручное управление памятью — в Go сборщик мусора. В C++ наследование — в Go композиция. В C++ исключения — в Go принцип "ошибка есть значение".
А что имеется в виду под паттерн-матчингом? Как в Хаскеле, множественное определение функции? Go откровенно императивный язык, ему такое не идёт.
Если голову поломать, и заодно понять концепции, которые пока не вошли в мейнстрим, но вполне могут войти, то рекомендую Haskell. В нем функциональное программирование, функции высшего порядка, система типов, иммутабельность, функциональные структуры данных. Это все в нем невозможно не использовать. Для ознакомления и прокачки достаточно на уровне решения простых алгоритмических задач (project euler и т.п.). Не запариваться про лямбда-исчисление, теорию категорий и т.п., просто решать задачки.
Как полезная замена — наверное, стоит посмотреть на F#, но по красоте он не дотягивает до Haskell и накладывается отпечаток .NET
Если просто посмотреть, что в других языках бывает (другие концепции):
— Smalltalk - (я в свое время балдел), динамика, чистейший ООП (ВСЕ есть объект, даже if-else и while всего лишь методы в объекте), идеальный REPL (программа = runtime), функции высшего порядка, очень простой синтаксис. Сейчас не используется язык.
— Lisp-подобный язык какой-нибудь, современный — программа = данные, "отсутствие" синтаксиса (тот же форт, только лучше, понятнее для человека, а не компа).
— Пролог - необычный, странный. Сам по себе, наверное, не используется, но возможно выстрелит когда-нибудь datalog (пролог-подобный язык запросов)
— Ассемблер - чтобы понять как внутри комп работает. Система команд, регистры, память, условные переходы, флаги процессора. Простейшие алгоритмы посмотреть (циклы, поиск, вызов процедуры, реализация ООП), особенно кто на Си пишет.
UPD: Еще Erlang интересен, наверное.
Как писать крупные проекты на этих языках я не знаю. И вообще, у меня нет большого опыта их использования. Поэтому не могу сказать про полезность. Но мозги приходится поднапрячь при ознакомлении, и в дальнейшем это помогает.
Немножко не по теме, но все же: SQL, XSLT, XPath
И языки разметки, совсем не по теме, но зато очень полезно: XML, JSON, jsonlines/hjson, YAML, INI
Здравствуйте, rudzuk, Вы писали:
B>> Разумно. Но это мобильная разработка, а мне она очень не понравилась. R>Чем именно, если не секрет?
Не секрет:
1. Неудобно отлаживать.
2. Сложно проверять (разница между Android и iOS; разница в Android'ах).
3. Ненативные языки (если хочется использовать один язык везде)
У меня правда был дерьмовый инструмент (PhoneGap), но проблемы выше в любом случае будут.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, Kswapd, Вы писали:
B>>Я думал о Go, но что-то он совсем не глянулся. С одной стороны странноватый синтаксис, с другой — все тоже самое как в С++.
K>Ну как же. Go — отрицание C++ .
Я неудачно выразился. Правильно сказать так: синтаксис Go слишком похож на С, из-за чего он выглядит как С со свистоперделками. Тогда как синтаксис Rust на С не похож, из-за чего выглядит значительно более целостным.
K>А что имеется в виду под паттерн-матчингом? Как в Хаскеле, множественное определение функции? Go откровенно императивный язык, ему такое не идёт.
Оператор match (как замена switch).
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.