Программирование - это просто

Touareg

to kalon epieikes
Есть мнение (и не только моё), что обладая некоторой внутренней культурой, самодисциплиной и ясностью ума, можно овладеть любым языком программирования за три недели. Честно сказать я не пробовал, в свое время поймал жесткую передозировку ассемблером (в моем послужном списке есть написанная с нуля операционная система реального времени в несколько десятков тысяч строк низкоуровневого кода B) ), теперь у меня аллергия на программирование вообще, за исключением высокоуровневых скриптов. B)

Не знаю насколько здесь уместна аналогия, но если умеешь водить какой-нибудь автомобиль, то ты умеешь водить любой автомобиль.
 

sami

Местный
Есть мнение (и не только моё), что обладая некоторой внутренней культурой, самодисциплиной и ясностью ума, можно овладеть любым языком программирования за три недели.
Вообще - смотря для чего. Для профессиональной разработки владения одним только языком (или не одним) не достаточно. Тут нужно владение платформой, библиотеками, парадигмой. Для этого 3х недель мало. И даже пары лет далеко не всегда достаточно, особенно без опыта работы с другими языками/платформами.

А если стоит задача перемножить матрицы, то чтобы выполнить ее на C++, потребуется меньше дня, если есть навыки работы на Delphi. И наоборот.
А вот с переходом с Delphi на Haskell, например, будет сложнее.

Степень владения субъективна. Потому я не соглашусь с этим мнением, но и спорить не стану.
 

Touareg

to kalon epieikes
Вообще - смотря для чего. Для профессиональной разработки владения одним только языком (или не одним) не достаточно. Тут нужно владение платформой, библиотеками, парадигмой. Для этого 3х недель мало. И даже пары лет далеко не всегда достаточно, особенно без опыта работы с другими языками/платформами.

А если стоит задача перемножить матрицы, то чтобы выполнить ее на C++, потребуется меньше дня, если есть навыки работы на Delphi. И наоборот.
А вот с переходом с Delphi на Haskell, например, будет сложнее.

Степень владения субъективна. Потому я не соглашусь с этим мнением, но и спорить не стану.
У каждого языка программирования есть своя парадигма, некий набор базовых концепций, семантика и синтаксис, три недели достаточно, чтобы усвоить это. И есть конкретная реализация среды разработки, компилятора, набор библиотек и целый веер разнообразных тонкостей, для усвоения этого нужно в районе полугода интенсивной практики. Другими словами, одно дело начать думать в терминах языка, другое дело начать генерить руками качественный работоспособный код. Вобщем то программирование это первое, второе это кодинг в индийском стиле, то что в цивилизованном мире выносится в оффшор.
 

sami

Местный
У каждого языка программирования есть своя парадигма
ой ли? Парадигм программирования не так много, как языков.
, некий набор базовых концепций, семантика и синтаксис, три недели достаточно, чтобы усвоить это.
Парадигму освоить за 3 недели? ну-ну... Синтаксис, семантику - можно и за меньшее.
И есть конкретная реализация среды разработки, компилятора, набор библиотек и целый веер разнообразных тонкостей, для усвоения этого нужно в районе полугода интенсивной практики. Другими словами, одно дело начать думать в терминах языка, другое дело начать генерить руками качественный работоспособный код. Вобщем то программирование это первое, второе это кодинг в индийском стиле, то что в цивилизованном мире выносится в оффшор.
непонял. Программировать - то думать в терминах языка, а генерить качественный работоспособный код - это кодинг в индийском стиле?
 

Touareg

to kalon epieikes
непонял. Программировать - то думать в терминах языка, а генерить качественный работоспособный код - это кодинг в индийском стиле?
Ну не знаю как сказать, для меня программировать это скорее проектировать (рисовать карандашом на листе бумаги набор абстракций и стрелочки между ними), а не собственно кодировать, у всех по разному наверно. Просто знаю как дорого обходятся ошибки проектирования, и как много при этом приходится переделывать, хотя формально код рабочий и компилируется без ошибок.

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

ps дельфи отдыхает, с++ рулит.
 

sami

Местный
Ну не знаю как сказать, для меня программировать это скорее проектировать (рисовать карандашом на листе бумаги набор абстракций и стрелочки между ними), а не собственно кодировать, у всех по разному наверно. Просто знаю как дорого обходятся ошибки проектирования, и как много при этом приходится переделывать, хотя формально код рабочий и компилируется без ошибок.
Проектирование и программирование - это формально разные, слабопересекающиеся дисциплины. Да и проектирование с конкретными языками связано не столь сильно. Больше с парадигмами.

Спор беспредметный, чтобы подогреть тему. :rolleyes:

Не знаю насколько здесь уместна аналогия, но если умеешь водить какой-нибудь автомобиль, то ты умеешь водить любой автомобиль.
И это не отменяет, что на карьерном экскаваторе или на макларене ф1 даже с места не сможешь тронуться).
Могу продолжить. Если знаешь русский - знаешь любой другой язык. Главное - отчаянно жестикулировать.

Неуместная аналогия, т.к. в одном случае моторные (мозжечковые) навыки, в другом - чуть глубже.

ps дельфи отдыхает, с++ рулит.
Все зависит от задачи, специалистов и доступных ресурсов. Если задача формоклепательная, то отдыхает C++ :rolleyes: Любой индус за день на Delphi столько форм наклепает, что любой фанатик C++ будет нервно грызть локти в сторонке. И на проектирование можно забить, потому как переклепать формы по-новому можно еще за один день. А на третий раз и то за меньшее время :D
А потому что при формоклепании работает мозжечек. Он зачастую работает быстрее, чем мозг.
 

Touareg

to kalon epieikes
Могу продолжить. Если знаешь русский - знаешь любой другой язык. Главное - отчаянно жестикулировать.

Неуместная аналогия, т.к. в одном случае моторные (мозжечковые) навыки, в другом - чуть глубже.
Аха, неуместная. Родной язык так или иначе знает каждый, причем с нежного возраста когда еще сам себя не осознаешь. В этом аспекте уместней сравнивать со знанием иностранных языков, если владеешь хотя бы одним - овладеть почти любым следующим будет заметно проще, чем первым. :D
Проектирование и программирование - это формально разные, слабопересекающиеся дисциплины. Да и проектирование с конкретными языками связано не столь сильно. Больше с парадигмами.
Вобщем то да, и нет. Кто плохо проектирует, как правило программирует тоже плохо, даже если хорошо кодирует. :)
Все зависит от задачи, специалистов и доступных ресурсов. Если задача формоклепательная, то отдыхает C++ :rolleyes: Любой индус за день на Delphi столько форм наклепает, что любой фанатик C++ будет нервно грызть локти в сторонке. И на проектирование можно забить, потому как переклепать формы по-новому можно еще за один день. А на третий раз и то за меньшее время :angry:
А потому что при формоклепании работает мозжечек. Он зачастую работает быстрее, чем мозг.
Для формоклепательных задач есть вижл бэйсик еще. :rolleyes:
А еще бывают задачи программировать тостеры, лифты и микроволновки, и еще много других, тупых и неинтересных. Это уж кому как повезет, надо уметь выбирать себе задачи по вкусу, хотя мозжечок в тонусе тоже держать полезно. :angry:
 

sami

Местный
А еще бывают задачи программировать тостеры, лифты и микроволновки, и еще много других, тупых и неинтересных. Это уж кому как повезет, надо уметь выбирать себе задачи по вкусу, хотя мозжечок в тонусе тоже держать полезно. :rolleyes:
Для этих задач, C++ тоже не лучший выбор. И Delphi там, возможно даже чуток уместнее будет. А еще лучше C, Forth.
 

sami

Местный
Кто плохо проектирует, как правило программирует тоже плохо, даже если хорошо кодирует. :rolleyes:
про плохо или хорошо ли программируют те кто плохо проектируют - тоже весьма спорный вопрос. Допустим, берем одного сторонника аджайл методологий и одного RUP-водопадника. Даем им одну задачу и один срок. Допустим, оба неуспели к сроку. У первого никакого проекта и еле дышащая альфа версия, у второго отличный проект и набросок кода. Который из них программист лучше?

Я не к тому, что проектировать не надо, я к тому что лучше/хуже/C++ рулит - это все несерьезно.
 

sami

Местный
Программирование - отстой! Или что-то вроде того.
Немного не в кассу, но о программировании вообще.

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

Touareg

to kalon epieikes
про плохо или хорошо ли программируют те кто плохо проектируют - тоже весьма спорный вопрос. Допустим, берем одного сторонника аджайл методологий и одного RUP-водопадника. Даем им одну задачу и один срок. Допустим, оба неуспели к сроку. У первого никакого проекта и еле дышащая альфа версия, у второго отличный проект и набросок кода. Который из них программист лучше?
Второй.
Девять из десяти софт-проектов не укладываются в бюджет и/или в срок, это обычная практика. Еле дышащий прототип первого после дедлайна надо выбросить и полностью переделывать заново, а имея готовый проект можно нанять команду таджиков-кодеров задешево и быстро все доделать.
 

@live

Новичок
Программирование - отстой! Или что-то вроде того.
Немного не в кассу, но о программировании вообще.
Статья лежит в избранном. Интересный подход. Но я бы дополнил рок звёзд композиторами-классиками :) Рок нужен в быстрой инженерной коммерческой работе, там он звучит "в тему". Но вот для души, и чтобы навека... без классики уже никуда :) Чёткий полиинструментальный глубокий, не всем понятный изысканный код просто как минимум вызывает уважение. У программиста всегда делема - художник ли он или машинист паровоза. Как правило, машинистам платят намного больше, тут не поспоришь.
 

sami

Местный
Второй.
Девять из десяти софт-проектов не укладываются в бюджет и/или в срок, это обычная практика. Еле дышащий прототип первого после дедлайна надо выбросить и полностью переделывать заново, а имея готовый проект можно нанять команду таджиков-кодеров задешево и быстро все доделать.
Я думаю, что 9 из 10 менеджеров с Вами не согласятся и предпочтут синицу в клетке, которую можно доработать напильником и начать продавать. Перфекционизм хорош, но программисту платят не за него. Да и софт - он на то и софт, что не отлит в железе. Из худого кода можно сделать сносный, из сносного неплохой, из неплохого хороший. Выкидывать худо работающий код - непозволительная роскошь, если речь не идет о проекте масштаба косынки.
 

sami

Местный
Рок нужен в быстрой инженерной коммерческой работе, там он звучит "в тему". Но вот для души, и чтобы навека... без классики уже никуда :)
Не верю в программистов-филантропов :eek:

Чёткий полиинструментальный глубокий, не всем понятный изысканный код просто как минимум вызывает уважение.
По своему опыту могу сказать, что не всем понятный код в проектах, где работает более одного человека (даже если для души), вызывает недоумение и сложности в поддержке. Ладно еще, когда код не всем понятен всилу разного уровня владения языком/парадигмой/предметной областью, возможно это простимулирует некоторых к дальнейшему обучению. Главное тут, чтобы не всем понятный код не был самоцелью. Писать понятный код - поистине искувство.

У программиста всегда делема - художник ли он или машинист паровоза. Как правило, машинистам платят намного больше, тут не поспоришь.
Не могу согласиться с идиомой, т.к. профессия машиниста слабо вяжется с программированием. Программист - это первым делом инженер, потом уже конструктор, хирург, терапевт, телепат, в чем-то историк, стратег, скорее поэт, чем художник и, на худой конец, паровоз, но не машинист. Машинист - это уже менеждер.
 

Mike22

Местный
Представлен стабильный релиз виртуальной машины Parrot – 1.0.0, который получил кодовое имя «Haru Tatsu». Данная виртуальная машина ориентированна на использование динамическими языками (такие, как Perl, Python и др.). Изменения и улучшения затронули документацию, поддержку языков, инструменты, адаптацию. Так, усовершенствована и расширена документация, находящаяся по адресу: http://docs.parrot.org, а также добавлена документация в формате .chm. Поддержка ряда языков выделена в отдельные проекты (Pynie, Cardinal, APL), ряд других перемещён в examples/ (ABC, Squaak, Befunge), остальные языки перещены в https://svn.parrot.org/languages/. Появилась поддержка сборок языка из установленной Parrot, а также расширены возможности языкового shell–генератора для новых языков. Произведено удаление устаревших классов Tqueue и Closure, а некоторые другие классы (String, Key, NCI, LexPad, Iterator, Sub, Continuation, RetContinuation, ExceptionHandler, ParrotLibrary, ParrotInterpreter, ParrotThread, ParrotRunningThread, Rational, FixedPMCArray, ResizablePMCArray, GDBMHash) теперь используют объявленные атрибуты (ATTR), вместо нерекомендовнаного к применению UnionVal. Вы можете ознакомиться с подробной информацией здесь и загрузить программное обеспечение здесь.
Parrot - уникальная штука, я считаю.
Вообще, в последнее время, виртуальные машины и скриптовые языки программирования совершили революцию в мире копьютеров.
Зачем сверхбыстродействие и производительность если вы мышкой курсор дольше ведёте по экрану для нажатия на кнопку <ОК> чем сама задача считается?
Parrot изначально планировался как виртуальная машина языка perl - старейшего из скриптовых языков, прекрасного и ужасного одновременно, но теперь Parrot более универсален.
Тема языков программирования, скриптовых языков, противостояния интерпретаторов и виртуальных машин чрезвычайно интересна.
Давайте и о них немного поспорим.
 

sami

Местный
Тема языков программирования, скриптовых языков, противостояния интерпретаторов и виртуальных машин чрезвычайно интересна.
Давайте и о них немного поспорим.
Тема, конечно, интересна сама по себе, но спор возникает там, где есть противоположные мнения по предметному вопросу.

Вот лично мне, чтобы составить мнение, требуется немного быть вкурсе вопроса. По части скриптоых языков и виртуальных машин, я этим похвастаться не могу.
Но подыграю, чтобы развить тему :D

Не, скриптовые языки - фуфло, виртуальные машины - отстой, они греют процессор и за счет массового распространения это сказывается на климате планеты на пороге глобального потепления! :mellow:
 

SCTRWD

Местный
Вообще, в последнее время, виртуальные машины и скриптовые языки программирования совершили революцию в мире копьютеров.
Зачем сверхбыстродействие и производительность если вы мышкой курсор дольше ведёте по экрану для нажатия на кнопку <ОК> чем сама задача считается?
Parrot изначально планировался как виртуальная машина языка perl - старейшего из скриптовых языков, прекрасного и ужасного одновременно, но теперь Parrot более универсален.
Тема языков программирования, скриптовых языков, противостояния интерпретаторов и виртуальных машин чрезвычайно интересна.
Давайте и о них немного поспорим.

А где эта революция? Какая-то незаметненькая такая революция, о которой никто ни сном ни духом :huh:

Если у Вас расчёт идёт во время ввода пользователя, то это не достижение, и гордится здесь не чем. Это - извращение и признак запущенно-отвратительного дизайна программы. Типичная попытка замаскировать свои просчёты и попытка создать видимость хорошей мины при плохой игре. Что бы не пойти дальше и забрасывать пользователя какими-нибудь тупыми диалоговыми сообщениями до тех пор, пока программа не досчитается?

Некторые создатели операционных систем, по крайней мере, делали честно, выбрасывая пользователю какую-нибудь игрушку, чтобы он развлёкся пока система инсталлируется :lol: .
 

sami

Местный
А где эта революция? Какая-то незаметненькая такая революция, о которой никто ни сном ни духом :huh:
Вы хотите чтобы к Вам домой пришли сектанты и поведали о динамических языках? Или может быть по первому каналу услышать о революции в программировании?
Вобщем, если поинтересуетесь предметом, то определенный ажиотаж вокруг динамических языков наверняка заметите.

А революцию Haskell Вы тоже пропустили?

Если у Вас расчёт идёт во время ввода пользователя, то это не достижение, и гордится здесь не чем. Это - извращение и признак запущенно-отвратительного дизайна программы. Типичная попытка замаскировать свои просчёты и попытка создать видимость хорошей мины при плохой игре. Что бы не пойти дальше и забрасывать пользователя какими-нибудь тупыми диалоговыми сообщениями до тех пор, пока программа не досчитается?
Динамические языки имеют популярность в том числе в игростроении, и даже в жанрах аля FPS, где каждый такт на счету. Кстати, там тоже счет ведется во время ввода пользователя и никто не считает это извращением или признаком отвратительного дизайна.
 
Сверху