LINUX.ORG.RU

Серия статей «По языку в день» от Андрея Шитова

 ,


5

3

Андрей Шитов, известый Perl-разработчик, решил в этом году попробовать как можно больше языков программирования и поделиться опытом с читателями.

Языки программирования восхитительны! Ты влюбляешься в какой-либо язык как только напишешь несколько тестовых программ. Чем больше изучаешь, тем лучше чувствуешь сам язык и идеи положенные в его фундамент.

В рождественском календаре этого года (с 1 по 24 декабря), я буду ежедневно публиковать статьи повествующие об основах различных языков программирования: один день - один язык. Чтобы сделать обзоры более полезными, я постараюсь придерживаться единого формата и разобрать аспекты языка, необходимые для написания следующих мини-проектов:

  • Hello, World!
  • Функция, вычисляющая факториал рекурсивно или в функциональном стиле
  • Программу, создающую массив объектов и выполняющую полиморфный вызов методов на них
  • Реализацию сонной сортировки (sleep sort). Данный алгоритм не применяется в боевых условиях, но замечательно демонстрирует возможности языка в разрезе конкурентности

Список языков:

  • День 1. TypeScript
  • День 2. Rust
  • День 3. Julia
  • День 4. Kotlin
  • День 5. Современный C++
  • День 6. Crystal
  • День 7. Scala
  • День 8. Dart
  • День 9. Hack
  • День 10. Lua
  • День 11. Raku
  • День 12. Elixir
  • День 13. OCaml
  • День 14. Clojure
  • День 15. Nim
  • День 16. V
  • День 17. Go
  • День 18. Hy
  • День 19. Red
  • День 20. Mercury
  • День 21. Elm

>>> Подробности

★★★★★

Проверено: cetjs2 ()
Последнее исправление: cetjs2 (всего исправлений: 2)
Ответ на: комментарий от Iron_Bug

Вот как раз под «выработкой своего стиля» я понимаю закукливание в подмножестве предметных областей и способов решения задач (от архитектуры до циклов for и форматирования кода), ограничивающее количество граблей на этом пути. Чтобы не перечитывать Страуструпа каждый год. Потому что 10 лет – это настолько непрактично, что бессмысленно. Собранные за такой срок грабли во-первых не запомнишь, а во-вторых устареют.

dimgel ★★★★★
()
Последнее исправление: dimgel (всего исправлений: 1)
Ответ на: комментарий от muhas

Это было бы прикольнее кстати, чем хеллоуворлды смотреть на каждом языке

vitalif ★★★★★
()
Ответ на: комментарий от muhas

Я угадал краткий пересказ?

Нет:

Ты влюбляешься в какой-либо язык как только напишешь несколько тестовых программ.

dimgel ★★★★★
()
Ответ на: комментарий от dimgel

я считаю, что на любой навык вообще нужно потратить 10 лет. иначе несерьёзно и непрофессионально. до 10 лет - это уровень любителя. начиная с 10 лет уже начинается профессионал. ну и там дальше уже по 10 лет можно рассматривать уровни мастерства.

Iron_Bug ★★★★★
()

Андрей Шитов, известый Perl-разработчик

Штонаписал этот известый разработчик ?

Реализацию сонной сортировки (sleep sort)

Спящей. Что за олень переводил текст ?

Почему нет Пацкаля ? В отличие от всякой хипстоты типа Lua, Kotlin, Julia, на Пацкале делали, делают и будут делать весьма годные и известные вещи.

А вообще друзья, это яркий пример того как дурно ЯП влияет на моцк человека.

windows10 ★★★★★
()
Ответ на: комментарий от Iron_Bug

я считаю, что на любой навык вообще нужно потратить 10 лет. иначе несерьёзно и непрофессионально. до 10 лет - это уровень любителя. начиная с 10 лет уже начинается профессионал. ну и там дальше уже по 10 лет можно рассматривать уровни мастерства.

Не. Это наука ради науки, сродни регалиям в постсовковом научном мире, где плюшки получают не за изобретения, а за длину титула и мифическую выслугу лет.

Вообще профессионализм определяется рынком, и если пардон, какую-нить Krit’у любят-ставят-обожают, а от GIMP’а который старше аккурат на 10 лет - плюются и блюются, то профессионалы - именно те кто написали Krit’у.

Ковчег был построен любителем. Профессионалы построили Титаник (с)

windows10 ★★★★★
()
Ответ на: комментарий от windows10

профессионализм определяется умениями и опытом. рынок тут ни при чём вообще.

насчёт Титаника - он был настоящим, в отличие от всякой вымышленной муры. и с ним не было технических проблем, его фактически уничтожили неправильным управлением.

да, настоящие проекты, в отличие от хэлловорлдов, могут иметь реальные проблемы. поэтому и нужны профессионалы, чтобы делать настоящие вещи качественно. и это касается всего. не только программирование, но и ремёсла, и искусство, и что угодно вообще. большие и настоящие вещи делают профессионалы, а не попавшие в струю рынка лепилы и не вчерашние студенты.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от Iron_Bug

профессионализм определяется умениями и опытом

Именно. А опыт - это именно усваивание объема, а не какой-то временной отрезок в 10 лет, за которые можно костенеть мозгом пиная болт с однажды выученной технологией.

windows10 ★★★★★
()

Значит, серия чуши по одной в день от некоего… уже забыл, как его звать.

Нуичо? Нафига вы её тут распространяете? Свою чушь придумывайте. Может, лучше получится.

Partisan ★★★★
()
Ответ на: комментарий от anonymous

Вот же людям делать нехер

Человек решил так три недели отпуска провести, почему нет? Имеет право. Вон Билл Гейтс всё Фейнмана штудировал в отпусках, результат всем известен.

Лучше во всяком случае, чем многое-многое другое.

anonymous
()

21 день копипасты с Rosetta Code?

Кому это вообще может быть нужно?

anonymous
()
Ответ на: комментарий от dimgel

а нельзя изучить «только отдельные технологии» и быть профессионалом. отдельные технологии изучают студенты. и тут их немало, судя по комментариям :) они наивно полагают, что вот они выучат наизусть Страуструпа и сразу начнут что-то писать. фига с два! вообще, понимание того что и как делать, приходит только после самостоятельного написания нескольких крупных проектов. не «работа год в большом проекте», а именно проектирование, полная разработка и реализация. вот после таких проектов человека можно считать профессионалом. а изучить синтаксис какого-то языка - это фигня вообще, причём наименее существенная.

Iron_Bug ★★★★★
()
Ответ на: комментарий от anonymous

Гейтс по сравнению с Фейнманом - как моська против слона. зачем ему вообще Фейнман - полная загадка. он же торгаш и мелкий шулер. а Фейнман был великим мыслителем и ничего никому не впаривал.

Iron_Bug ★★★★★
()
Ответ на: комментарий от deathangel908

а языки изучать точно так же: не менее 10 лет. потому что нужно изучить не только алфавит, и даже не набор слов. нужно изучить традиции, культуру страны, наработать большой объём информации и научиться его использовать. в это включаются фразеологизмы, всяческие поговорки, устойчивые выражения, слэнг и многое другое. без этого язык не язык и иностранца видно за километр.

я не обсуждаю языки типа китайского. тут надо вообще особое мышление. я не представляю себе, как можно запомнить несколько тысяч иероглифов, а это у них минимум для школьника младших классов :)

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)

А где ассемблер и сишечка?

anonymous
()

А Оберона - наследника Паскаля нет. Да даже Паскаля/Дельфи не видать. Чому так?

anonymous
()

А где чистый Си? Не говоря уже про визуальное программирование (хотя бы MyOpenLab, пока Метапрог не готов).

metaprog
()

рождественская клоунада, странно что не православная

zendrz ★★
()
Ответ на: комментарий от anonymous

+- да к его коду на ++ есть вопросы.

Но ведь ты не следуешь слепой фанатичной вере что new и сырые указатели (возможно потому что так Майерс сказал в своих книжках? :) ) в современном С++ плохо, так же как и friend в классах тоже безаппеляционно плохо.

Почти у каждого инструмента в современном ++, даже таких friend есть прекрасные и обоснованные случаи применения.

Так же как и у сырых указателей. Неужели ты бы во всх случаях стал городить специальный метод на классе для определения того что возращенное значение является пустым.

Иногда намного удобнее, а главное эффективнее с точки зрения машинного кода проверить указатель на пустоту, вернув nullptr, чем вернуть сконструированный объект-пустышку и проверить его на пустоту через его методы. А то что это стрельба в ногу - бред, по крайней мере пока все компоненты проекта имеет открытый исходный код.

bonta ★★★★★
()
Последнее исправление: bonta (всего исправлений: 2)
Ответ на: комментарий от hobbit

Elm и Erlang будут, они на два последних дня оставлены. Перейдите по ссылке, я чутка накосячил с оформлением новости.

perl5_guy ★★★★★
() автор топика

прикольно. но с таким ограничением по времени максимум, что он сможет сравнить - это синтаксис языка

router ★★★★★
()
Ответ на: комментарий от router

Я уверен что Андрей глубже языки ковырял и статейки заранее подготовил. По Raku он вообще несколько книг написал, так что явно не один день изучает сей язык.

perl5_guy ★★★★★
() автор топика
Ответ на: комментарий от Iron_Bug

я считаю, что на любой навык вообще нужно потратить 10 лет. иначе несерьёзно и непрофессионально

Прямо таки на любой?

Deleted
()
Ответ на: комментарий от MaxPower

Ну он когда жил в РФ , делал все перловые тусы .

pinachet ★★★★★
()
Ответ на: комментарий от router

прикольно. но с таким ограничением по времени максимум, что он сможет сравнить - это синтаксис языка

Дык все мамкины полиглоты залипают на синтаксисе, который везде примерно одинаков. Что и позволяет этим дурачкам бахвалиться: мам, я выучил за месяц 30 языков! По факту же выучил одну надпись на заборе на 30 диалектах немецкого. Молодец, возьми с полки пирожок.

anonymous
()

Странный выбор языков. Транспилируемые вперемешку с компилируемыми и интерпретируемыми.

gorky ★★
()

Был Андрей Рублев, а у нас Андрей Говнов.

LongLiveUbuntu ★★★★★
()

День 5. Современный C++

А где чистый C - ну тот, на котором ядро и все ваши прошивки писаны?

SakuraKun ★★★★★
()
Ответ на: комментарий от SakuraKun

Потому что автор не осилил «Программу, создающую массив объектов и выполняющую полиморфный вызов методов на них» на Це. Тут же надо покумекать, а не просто накидать примерчик из туториала.

anonymous
()
Ответ на: комментарий от anonymous

Полиморфизм в С очевидный, не нужно ничего кумекать. Это основа.

fsb4000 ★★★★★
()
Ответ на: комментарий от anonymous

Ффух, при первом прочтении показалось, что анонимус считает, что Царь — это Шитов. Вот это был бы поворот…

hobbit ★★★★★
()
Ответ на: комментарий от Iron_Bug

к сожалению это мега проблема на данный момент

причем стартует она с начальной школы

без родительских усилий невиновная малявка не может системно развиваться

в итоге - кулъхацкеры окружают https://youtu.be/ygPlLbvdc5k?t=1387

sloan ★★
()
Ответ на: комментарий от fsb4000

Нормальный блог будет позже. Реализовать его сейчас не представляется возможным

Царь не осилил блог на сишечке? О_О

goingUp ★★★★★
()
Ответ на: комментарий от Iron_Bug

понимание того что и как делать, приходит только после самостоятельного написания нескольких крупных проектов ага, а еще приходит очень много грусти

иногда кажется: а вот бы не понимать, как бы было легче

иногда … в минутки слабости :)

sloan ★★
()
Ответ на: комментарий от windows10

на Пацкале делали, делают и будут делать весьма годные и известные вещи

интересно, можно пару свежих примеров?

sloan ★★
()
Ответ на: комментарий от Iron_Bug

а языки изучать точно так же: не менее 10 лет.

Позволю себе поинтересоваться: сколькими языками ты владеешь?

aquadon ★★★★★
()
Ответ на: комментарий от Iron_Bug

а изучить синтаксис какого-то языка - это фигня вообще, причём наименее существенная.

С одной стороны, вы правы и говорите то же самое что говорю и я, изучение синтаксиса - это действительно фигня. С другой стороны именно глубокое знание инструмента позволяет написать не «индусский код» а оптимальный для задачи и в минимальные сроки. Кто сказал что нельзя гвозди забивать микроскопом?

anc ★★★★★
()

Неправильно понята инициатива дяди Андрея. Статейки он пишет прежде всего, чтоб другие могли расширить свой кругозор. Может быть встретите какую-нибудь изящную синтаксическую конструкцию и захотите глубже изучить один из представленных языков. Я про часть описанных даже не слышал никогда. Втирают тут про какие-то 10 лет. Мы в ВУЗе аду с прологом ковыряли и я оч. рад что имел возможность пощупать что-то новое и необычное. Один из основных навыков инженера - знать где посмотреть. Расширяйте кругозор! Учите языки, музицируйте, на бокс ходите ёпта!

perl5_guy ★★★★★
() автор топика
Ответ на: комментарий от Iron_Bug

иначе несерьёзно и непрофессионально.

Яна, можно у вас поинтересоваться?

с учетом опыта кодинга на С/С++ … существуют ли действительно весомые причины, кроме глупости и лени, чтобы использовать что-то другое, чем актуальные С/С++ и asm в бакэнде любого рода?

sloan ★★
()
Ответ на: комментарий от Iron_Bug

я не обсуждаю языки типа китайского. тут надо вообще особое мышление. я не представляю себе, как можно запомнить несколько тысяч иероглифов, а это у них минимум для школьника младших классов :)

Каждый человек, изучавший математику и/или программирование, знает несколько сотен иероглифов: +, -, ++, ==, !=, ^, &&, &, … В китайском языке их просто чуть больше.

monk ★★★★★
()
Ответ на: комментарий от anonymous

Значит, серия чуши по одной в день от некоего… уже забыл, как его звать.

Как-то так

Душевно, давно Егорушку не слушал.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.