Собственно интересная тема поднята вот в этой заметке в ответ на спорную с т.зр. автора (и для меня тоже) статью в eWeek о 10 языках, которые (как говорится в статье) вы должны изучить прямо сейчас.
Возможно туда стоило бы добавить ассемблер (думаю не принципиально какой), который полезен для понимания, как же это всё работает на самом нижнем уровне.
Есть ли у вас дополнения или претензии к этому списку?
Здравствуйте, Курилка, Вы писали:
К>Собственно интересная тема поднята вот в этой заметке в ответ на спорную с т.зр. автора (и для меня тоже) статью в eWeek о 10 языках, которые (как говорится в статье) вы должны изучить прямо сейчас. К>Возможно туда стоило бы добавить ассемблер (думаю не принципиально какой), который полезен для понимания, как же это всё работает на самом нижнем уровне. К>Есть ли у вас дополнения или претензии к этому списку?
Персонально я бы сказал:
Assembler — для понимания как все работает на самом низком уровне
C — портабельный ассемблер, как совершенно верно замечено "when you need to make things fast"
С++ — противоречивый язык, но для тренировки мозгов и для многих задач хорош.
Nemerle(без макросов) — ИМХО лучшее на сегодня для того чтобы педалить код ,
с макросами — только для любителей метапрограммирования.
Lisp — классика функциональщины
Haskell — мощная функциональщина на любителя
Python — простой и понятный динамический язык
Smalltalk — классика ОО подхода, можно посмотреть, но синтаксис на любителя.
Erlang — возможно, для изучения быстрого мультитредного программирования.
JavaScript — только если нужно практически тесно работать с броузерами.
Perl — криптография какая-то, возможно кому-то и нравится.
VB, C#, Java — зачем, если есть Nemerle?
Личный опыт — немного asm, достаточно С, порядочно C++, немного Python и Nemerle.
(и MATLAB — вобщем-то не нравится, но производственная необходимость).
Здравствуйте, Андрей Хропов, Вы писали:
АХ>Персонально я бы сказал:
АХ> АХ> Lisp — классика функциональщины
Очень спорное утверждение, на лиспе можно писать совсем без "функциональщины" практически, хотя её там хватает, но больше я бы выделил макросы, хотя там ещё много чего есть интересного и перенятого другими языками (к примеру мультиметоды)... АХ> Haskell — мощная функциональщина на любителя
Да вот это уж функциональщина до предела, наверное АХ>
АХ>Smalltalk — классика ОО подхода, можно посмотреть, но синтаксис на любителя.
Местами я бы сказал, что перебор с этим подходом, хотя кому как
АХ>Perl — криптография какая-то, возможно кому-то и нравится.
Согласен, очень на любителя, я лично чураюсь
Здравствуйте, Андрей Хропов, Вы писали:
АХ>VB, C#, Java — зачем, если есть Nemerle?
Потому что для Nemerle (пока) нет нормального IDE. Вообще, Nemerle пока не готов для коммерческого использования. На Nemerle можно пока писать что-то "для души". Ну и ещё всяким Васям Пупкиным проще на Яве писать, чем учить новый язык. Да и тому же Васе Пупкину вряд ли будет понятно (и есть действующие примеры), чем C# лучше Nemerle — с его точки зрения это C# с немного странноватым синтаксисом и неуместным сахаром.
Здравствуйте, konsoletyper, Вы писали:
K>Здравствуйте, Андрей Хропов, Вы писали:
АХ>>VB, C#, Java — зачем, если есть Nemerle?
K>Потому что для Nemerle (пока) нет нормального IDE. Вообще, Nemerle пока не готов для коммерческого использования. На Nemerle можно пока писать что-то "для души". Ну и ещё всяким Васям Пупкиным проще на Яве писать, чем учить новый язык. Да и тому же Васе Пупкину вряд ли будет понятно (и есть действующие примеры), чем C# лучше Nemerle — с его точки зрения это C# с немного странноватым синтаксисом и неуместным сахаром.
Sergey Dmitriev, founder and chief executive of JetBrains, in Prague, Czech Republic, said any modern software platform and language should have 12 main features: object orientation; support for language extensions and meta-programming; an intelligent IDE; clear syntax and readable program code; support for collections; support for writing GUI applications; support for writing Web applications; support for multithreading; support for functional types, closures and continuations; garbage collection; an effective virtual machine/runtime; and the ability to deploy to any operating system.
Итак, по пунктам для Nemerle:
object orientation +
support for language extensions and meta-programming +
an intelligent IDE : работа над этим ведется и небезуспешно, см. здесь (для VS2005) и http://nemerle.org/Editors]здесь (есть уже для MonoDevelop, в процессе для SharpDevelop).
clear syntax and readable program code : кому что нравится, по-моему вполне читаемо (чай не Perl )
support for collections + см. System.Collections и Nemerle.Collections
support for writing GUI applications + см. WinForms и Gtk#
support for writing Web applications + см. ASP.NET
support for multithreading + см. System.Threading
support for functional types, closures and continuations +
garbage collection +
an effective virtual machine/runtime + достаточно эффективный (см. к примеру здесь
)
and the ability to deploy to any operating system + ну не то чтобы любая (поменьше чем у Java), но на основных есть: здесь.
Итак, Nemerle проходит по 11 из 12, да и оставшийся — вопрос времени.
Я что-то не вижу еще языка который набирал бы 11 или 12 .
Я бы к этому от себя добавил еще: Integrated Unit testing +
Integrated Aspect Oriented Programming +
Integrated Design-by-Contract +
Auto Documentation generation — да, по-моему это пока не работает (хотя не знаю точно), впрочем уже это-то сделать не проблема
Language Integrated Query + фактически уже есть (здесь), а когда появится встроенное от MS, то оно тоже будет работать.
см. также более fine-grained сравнение здесь
Есть языки которые могут посоперничать?
Не согласны что все в этих списках важно?
Насчет Василиев Пупкиных я не согласен.
На мой взгляд, Nemerle, если не писать свои макросы и не заморачиваться с функциональщиной, никак не сложнее для понимания чем C#.
А что до коммерческого применения, то тут ИМХО самое важное — качество библиотек.
А у Nemerle они от .NET, так что вполне на уровне.
Здравствуйте, konsoletyper, Вы писали:
K>Потому что для Nemerle (пока) нет нормального IDE. Вообще, Nemerle пока не готов для коммерческого использования. На Nemerle можно пока писать что-то "для души". Ну и ещё всяким Васям Пупкиным проще на Яве писать, чем учить новый язык. Да и тому же Васе Пупкину вряд ли будет понятно (и есть действующие примеры), чем C# лучше Nemerle — с его точки зрения это C# с немного странноватым синтаксисом и неуместным сахаром.
Я как главный Вася Пупкин прошу не упоминать мое имя в суе.
А интеграция со студией в процессе разработки.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Klapaucius, Вы писали:
K>Вообще-то есть еще Scala. Правда я не видел плагин к Эклипсу для Скалы, но он точно есть. Надо будет посмотреть.
Есть-то он есть... Вот этот вот плагин имхо очень далек от совершенства... Автокомплита нет, расцветка работает по какому-то странному алгоритму... Жаль на самом деле, ибо уж очень симпатичный язык...
DrDred,
K>>Вообще-то есть еще Scala. Правда я не видел плагин к Эклипсу для Скалы, но он точно есть. Надо будет посмотреть.
DD>Есть-то он есть... DD>Вот этот вот плагин имхо очень далек от совершенства... Автокомплита нет, расцветка работает по какому-то странному алгоритму... Жаль на самом деле, ибо уж очень симпатичный язык...
У меня есть скромное противоположное мнение
Автокомплит совершенно точно есть.
Если код корректный, то расцветка работает правильно.
Ну и когда ошибки в плагине являются решающим фактором для отказа от языка, мне остаётся только развести руками . Если проект небольшой, то вполне можно обходиться Фар/Вим + ант, имо.
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>DrDred,
K>>>Вообще-то есть еще Scala. Правда я не видел плагин к Эклипсу для Скалы, но он точно есть. Надо будет посмотреть.
DD>>Есть-то он есть... DD>>Вот этот вот плагин имхо очень далек от совершенства... Автокомплита нет, расцветка работает по какому-то странному алгоритму... Жаль на самом деле, ибо уж очень симпатичный язык...
LCR>У меня есть скромное противоположное мнение
LCR>Автокомплит совершенно точно есть.
Ну значит у меня неправильные пчелы, т.к. в корректном коде, когда я пытаюсь го использовать, весь код становится серым, и ничего он не показывает Рад слышать, что у кого-то не так Значит есть куда копать...
LCR>Если код корректный, то расцветка работает правильно. LCR>Ну и когда ошибки в плагине являются решающим фактором для отказа от языка, мне остаётся только развести руками . Если проект небольшой, то вполне можно обходиться Фар/Вим + ант, имо.
??? А где было сказано про отказ от языка? Удобный плагин — это всего лишь одна составляющая удобства использования языка с разработке... Для изучения языка можно вполне обходиться (и обхожусь ) консолью и редактором...
Здравствуйте, VladD2, Вы писали:
K>>Потому что для Nemerle (пока) нет нормального IDE. Вообще, Nemerle пока не готов для коммерческого использования. На Nemerle можно пока писать что-то "для души". Ну и ещё всяким Васям Пупкиным проще на Яве писать, чем учить новый язык. Да и тому же Васе Пупкину вряд ли будет понятно (и есть действующие примеры), чем C# лучше Nemerle — с его точки зрения это C# с немного странноватым синтаксисом и неуместным сахаром.
VD>Я как главный Вася Пупкин прошу не упоминать мое имя в суе.
Да ничего личного. Просто я хотел подчеркнуть, что некоторые товарищи не дорастают до ФП, даже до такого компромиссного (куда уж немерле до хаскеля ). Что уж говорить, один знакомый вообще задал вопрос: "А зачем нужно ООП? Я вот и без него неплохо пишу." . А если так придираться, то все языки — это brainfuck со странноватым синтаксисом и кучей никому не нужного сахара.
VD>А интеграция со студией в процессе разработки.
Так держать (+2). А мне плоды ваших трудов пожинать . Вот такой я нехороший. (а мог бы быть хорошим, если каждый месяц на новую VS SDK не пересаживались).
Здравствуйте, Андрей Хропов, Вы писали:
АХ>Насчет Василиев Пупкиных я не согласен. АХ>На мой взгляд, Nemerle, если не писать свои макросы и не заморачиваться с функциональщиной, никак не сложнее для понимания чем C#.
Оно то конечно так. Только как внушить В. Пупкину, что Nemerle лучше. Ведь чем мы отличаемся от В. Пупкина? Тем, что мы ленивые товарищи, и чем меньше и изящнее программа, тем нам лучше. Но Вася Пупкин своего времени не ценит и эстетического чувства не имеет, так что экономически ему выгоднее писать на том, что он знает (C# или Java).
АХ>А что до коммерческого применения, то тут ИМХО самое важное — качество библиотек. АХ>А у Nemerle они от .NET, так что вполне на уровне.
Тут важно ещё иметь хорошую IDE. Пока люди, возглавляемые ТоварищемКоторыйПросилНеУпоминатьЕгоИмяВсуе пишут IDE, о коммерческом применении Nemerle не может быть и речи. Так что пожелаем им успехов и творческих сил.
Здравствуйте, konsoletyper, Вы писали:
K>Так держать (+2). А мне плоды ваших трудов пожинать . Вот такой я нехороший. (а мог бы быть хорошим, если каждый месяц на новую VS SDK не пересаживались).
Так и делаем, только вот задержались малость по причине того, что я был в отпуске, а там интернет такой, что СДК не покачаешь. За это время я нехило разобрал проект и никак не соберу (времени не хватает). Через пару дней надеюсь апгрэйднуться до свежего СДК.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Андрей Хропов, Вы писали:
АХ> support for language extensions and meta-programming +
Вот тут я несоглашусь. Не "+", а +++++++++++++++++++++++++++++++++++++++++++++
АХ>А что до коммерческого применения, то тут ИМХО самое важное — качество библиотек. АХ>А у Nemerle они от .NET, так что вполне на уровне.
Важны так же качество компилятора (качественные сообщения об ошибках и предупреждения, отсуствие внутренних ошибок компилятора (ну, чтобы а глаза не попадались)) и качество IDE (функциональностью, стабильность производительность).
Вот с этим пока не все ОК, но работы ведутся и уверен, что в сделующем году будет релиз не только C# 3.0, но и C# 25.0, т.е. Nemerle 1.0.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>Ну и когда ошибки в плагине являются решающим фактором для отказа от языка, мне остаётся только развести руками .
И зря. На самом деле, деля большинства это действительно одиз из важнейших факторов.
LCR> Если проект небольшой, то вполне можно обходиться Фар/Вим + ант, имо.
Откровенно говоря даже супер-хайтек-язык начинает смотреться хреновенько по сравнению с C# с хорошей IDE. Ведь как не был бы читабелен код, но без подсказок IDE и без навигации изучать большой исходник дико трундо. Отладчик тоже важеная вещь. А уж писать без комплита и хинтов ой как не быстро получается. Если ты ко всему этому не привык, то может тебе и пофигу. Но для тех кто привык IDE становится как наркотик. Ты словно на игле. Писать в нопэде (утриновано) уже ломает.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.