LINUX.ORG.RU

На чем начать программить? Какой язык выбрать?!


0

0

Учусь на программера, уже повидал с/с++/java/asm/php... но как всем известно в универах перепадают мрачно, и не интересно, лучше самому сесть и разобраться с тем чем инетерсно, по этому выше перечисленное я почти не знаю )

так вот хотелось узнать ваше мнение, какой язык выбрать? что бы сидя на любимом линуксе, не знать бед и писать на востребованом языке)


Ответ на: комментарий от armag

>C - понимание азов кодинга. А scheme - понимание азов программирования. Чуствуете разницу или до сих пор кодите?

А вы кодите или до сих пор в школе программированием занимаетесь ?

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

> C - понимание азов кодинга. А scheme - понимание азов программирования. Чуствуете разницу или до сих пор кодите?

Во-первых, одного без другого не бывает (Дейкстра, Вирт, Грис - далее везде); во-вторых, надо понимать работу программы на всех уровнях - Си и Схема находятся на разных уровнях.

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

>прописал чего-то нажал обновить, опа и увидел труды свои)

тогда тебе понравится REPL

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

> C - понимание азов кодинга. А scheme - понимание азов программирования. Чуствуете разницу или до сих пор кодите?

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

Основной язык, используемый некоторым индивидом, хоть часто и может служить неким косвенным индикатором, но ни как не мерилом его профессиональности.

satanic-mechanic
()
Ответ на: комментарий от imp

>>Нормальные среды разработки есть только для Си, Жабы и Лиспа. Возможно, Питона. Из остального - в лучшем случае подсветка синтаксиса. Еще из мейнстрима есть С++, но там анализатор кода вместе с всеми комплишенами стабильно отваливается в среднем через ~15 мин работы, независимо от IDE.

>Если на языке невозможно писать без подсветки, автодополнений, анализаторов и прочих IDE приблуд - это говноязык и писать на нем не стоит по определению.

Предлагаешь писать на С++ в перловом стиле?

Absurd ★★★
()
Ответ на: комментарий от satanic-mechanic

>Не хотите аргументировать свою точку зрения?

Основные фишки лиспа, за которые его можно терпеть, это возможность программировать в терминах AST и метапрограммирование. Эти фишки позволяют легко и просто создавать eDSL/DSL в том числе компилируемые, в том числе в машинный код.

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

> Основные фишки лиспа, за которые его можно терпеть...

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

Синтаксис не является основной проблемой в частности Common Lisp. Наибольшей проблемой ИМХО является его стандарт. Если бы его слегка переработать, выкинув то, что нужно для обратной совместимости/было превнесено по историческим причинам, а еще бы добавить к этому сколько нибудь обширную (ну как у того же Python) _стандартную_ библиотеку, было бы вообще прекрасно.

satanic-mechanic
()
Ответ на: комментарий от satanic-mechanic

А eDSL, особенно компилируемые, особенно с синтаксисом, отличным от Lisp'овского, не менее успешно можно создавать другими средствами, camlp4 например.

satanic-mechanic
()
Ответ на: комментарий от lester

>выкинь PII и купи нормальное железо

Уже - недавно купил Core 2 Quad + 4Gb памяти, тем не менее предпочту нормальный язык (Haskell) + редактор (Vim), монструозным IDE с автодополнениями для "убогеньких недоязычков" (с).

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

>Не нужно "на дядю" работать, не приносит это удовлетворения.

не в коем случае не хочу работать "на дядю", хочу заниматься тем чем мне нравиться (пробую), и получать такое себе вознаграждение )

>компьютерщик без знания английского - не компьютерщик.

та знаю, этим занимаюсь потехоньку, пока не сталкивался с конкретной проблемой, все на русском было )

>C - понимание азов кодинга. А scheme - понимание азов программирования. Чуствуете разницу или до сих пор кодите?

поясните, а то я только интуитивно догадываюсь.

kyxap
() автор топика
Ответ на: комментарий от imp

> недавно купил Core 2 Quad + 4Gb памяти, тем не менее предпочту нормальный язык (Haskell) + редактор (Vim)

Квадкор и 4 гектара - это требования Vim или Haskell?

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

> Квадкор и 4 гектара - это требования Vim или Haskell?

Haskell, конечно... Компилятор там сложный, с кучей оптимизаций, компилирует действительно долго.

satanic-mechanic
()
Ответ на: комментарий от imp

>монструозным IDE с автодополнениями для "убогеньких недоязычков" (с).

Вообще-то идентификаторы должны быть осмысленными а следовательно длинными хоть в хаскеле хоть еще где.

Absurd ★★★
()

> так вот хотелось узнать ваше мнение, какой язык выбрать

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

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

>> поругайте что-ли php

>И чего его ругать. Этакий DSL для создания веб-приложений, имеющий когда-то конкурентные преимущества в простоте использования и, возможно, скорости разработки для данной предметной области.


ну уж нет. Не DSL он, простой скриптовый glue-код. Bash, например, тоже не DSL.
Недостатки php вылазят с трёх сторон:
1. сложно писать большие программы, с сохранением нормальной модульности -- код превращается в свалку под своим весом
2. интерпретируемость
3. отсуствие нормального сервера приложений и средств для его реализации.
Как препроцессор/скриптовый язык для малых нагрузок в стиле write only оно пойдёт, для постоения систем -- вряд ли (уже тот же haxe/NekoVM , будучи сильно похожим на PHP, но при этом более полноценным его заруливает)

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

> А на C надо учиться кодить, когда программировать уже умеешь.

«Си — инструмент, острый, как бритва: с его помощью можно создать и элегантную программу, и кровавое месиво» // Брайан Керниган

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

> предпочту нормальный язык (Haskell)

Да, кстати, возможно я пока не очень осилил Haskell. И он, разумеется, концептуально красив, вводит много интересных идей, и, вообще, яляется на данный момент наверное самым большим полигоном для оттачивания идей в области ФП. Но все же кажется _мне_ весьма непрактичным. ИМХО haskell (если кто читал статью Спольски про дырявые абстракции) оказывается как-раз той чрезмерно дырявой абстракцией на практике.

satanic-mechanic
()

> какой язык выбрать? что бы сидя на любимом линуксе, не знать бед и писать на востребованом языке)

Для этого нужно иметь мозг. Язык значения не имеет, либо является следствием.

ShprotX
()

Толсто

Сейчас начнется холивор

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

> Не DSL он, простой скриптовый glue-код. Bash, например, тоже не DSL.

Ну, это уже терминологический спор. Я, как раз, считаю и то, и другое скорее DSL'ями (в противоположность языкам общего назначения), насколько удачными, уже другой вопрос (это касается в первую очередь PHP).

> Недостатки php вылазят с трёх сторон ...

А недостатков у него действительно полно и с нынешним положением дел, не осталось и мало-мальских преимуществ. С этим я и не спорю. Просто это настолько очевидно, что поднимать очередную волну критики просто не имеет смысла.

satanic-mechanic
()
Ответ на: комментарий от tailgunner

> http://www.greenteapress.com/thinkpython/thinkCSpy/

Книгу не читал, но если соответсвует названию, то python действительно будет вполне подходящим выбором для топикстартера. Тем более что язык весьма практичен и прагматичен, а поэтому является вполне хорошим _рабочим_ инструментом и спрос на него в последние годы стабильно растет.

В связи с вышеозвученными интересами топикстартера к вебу стоит упоминуть также Django.

satanic-mechanic
()
Ответ на: комментарий от satanic-mechanic

про Django уже упоминали, на счет рейтинга языкоа нашел вот такое: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html и уже не в первом топе вижу Java, а про ниё и слова не сказали, что сильно уж сложный ? и нетбинс очень красивая среда...

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

> советуют http://diveinto.python.ru/toc.html для старта

Тоже неплохая книга, но How to think like computer scientist мне кажется более систематической, тем более это на самом деле семейство книг :) http://www.greenteapress.com/thinkpython/

> мне бы на русском

Английский по-любому нужно знать, вот заодно и выучишь :)

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

Java прост, но уж очень неинтересен и сух в использовании. Но да, из всех языков, на которых можно нормально вести разработку в Linux, он наиболее восстребован для работы "на дядю" в "кровавом энтерпрайзе". Но, в принципе, не так уж плох для обучения.

ИМХО, Python гораздо лучше.

satanic-mechanic
()
Ответ на: комментарий от satanic-mechanic

>А недостатков у него действительно полно и с нынешним положением дел, не осталось и мало-мальских преимуществ.

Есть одно не мало-мальское - имеющийся массив кода на PHP.

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

> C - понимание азов кодинга. А scheme - понимание азов программирования

почитайте Джоэля - авось поймете что-то

lester ★★★★
()
Ответ на: комментарий от satanic-mechanic

>не ограничивает область применимости Lisp, только расширяет ее

Дело не в том, что там ограничивает или расширяет. Дело в том, что лисп не является языком общего назначения. Точка.

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

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

> Основные фишки лиспа, за которые его можно терпеть, это возможность программировать в терминах AST и метапрограммирование.

А за что его терпеть нельзя? Он и без "мета" остаётся нормальным языком программирования общего назначения.

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

> Дело не в том, что там ограничивает или расширяет. Дело в том, что лисп не является языком общего назначения. Точка.

Обоснование-то есть?

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

> пожалуйста, перестаньте мудить про лисп

я под столом :))))

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

> пожалуйста, перестаньте мудить про лисп

А там ничего мудрёного нет. Язык, как язык, только лучше и выше основной массы.

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

> Дело в том, что лисп не является языком общего назначения. Точка.

Аргументация, где аргументация? Точка?

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

Я, я не понимаю такого простого вопроса. И в то же время он не кажется мне неуклюжим и архаичным. Недостатки в стандарте есть, да, но 1. они не так велики; 2. не знаю, как признание Lisp языком не общего назначения поможет разному порядку аргументов в getf, aref (контейнер, "ключ") и gethash ("ключ", контейнер), например. Я имел в виду недостатки именно такого рода.

satanic-mechanic
()
Ответ на: комментарий от kyxap

> пожалуйста, перестаньте мудить про лисп

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

> Учусь на программера, уже повидал с/с++/java/asm/php... но как всем известно в универах перепадают мрачно, и не интересно, лучше самому сесть и разобраться с тем чем инетерсно, по этому выше перечисленное я почти не знаю )

учите хоть PHP, хоть Lisp, толку особого не будет. Пока вы не поймете, что в подавляющем большинстве случаев хороший специалист в любой области является человеком, которому его профессия нравится и который добровольно, и более того, с удовольствием, инвестирует свое время в развитие в рамках своей профессии. Вы же, являясь уже студентом (и, как я понял, далеко не первокурсником), ничего не знаете (включае банальное "выше перечисленное"), потому что, видите ли, в "универах препадают мрачно". Почему вы, до сих пор не воплотили в жизнь ваши же слова "лучше самому сесть и разобраться с тем чем инетерсно" и до сих пор не знаете хотя бы C, который знать очень полезно, и который у вас был по программе. Думаете ответы с LOR'а сделают вас умнее?

satanic-mechanic
()
Ответ на: комментарий от satanic-mechanic

>Почему вы, до сих пор не воплотили в жизнь ваши же слова

потому что только сейчас меня заинтересовало программирование.

>не знаете хотя бы C ... и который у вас был по программе

ага был, 1 пара в техникуме XD

kyxap
() автор топика
Ответ на: комментарий от mv

>Обоснование-то есть?

Раз пошел такой разговор - как говорится "давай без наебалова" (C) :) - напишите например в 20 строчках что-то полезное на lisp - все равно что - главное чтобы это было _действительно полезно_, вычисление 500 знака числа Пи не интересует.

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

Вот за что я люблю ЛОР так это за такие вот темы. нет нет а раз в месяц вылупится из инкубатора новообразование биомассы в котором помимо топлива для биореактора по недосмотру генетиков появилось новообразование - мозг =))) И задаёт этот мозг вопрос что до него задавали уже не 512 и не 1024 раза =) и начинается феерический срач с обильным онанизмом на различные языки, парадигмы их создателей и прочая =)

по теме. Чтобы бед не знать - учи перл )))) c изолентой под рукой всегда можно что-угодно замутить =) ну или гламурный скотч в лице пистона =)

http://xkcd.com/224/

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

>Вообще-то идентификаторы должны быть осмысленными а следовательно длинными хоть в хаскеле хоть еще где.

Вообще-то в вмие тоже есть автодополнение, которое работает гораздо удобнее и эффективнее чем во все IDE что я видел =) к примеру я ещё не видел ни одного IDE что умеет дополнять имена файлов =)

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

>Вообще-то в вмие тоже есть автодополнение, которое работает гораздо удобнее и эффективнее чем во все IDE что я видел =) к примеру я ещё не видел ни одного IDE что умеет дополнять имена файлов =)

Я на С сам пользовался иногда, но на Haskell'е как то без этого обхожусь. Все равно основное время уходит на обдумывание, а не написание кода.

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

>Вообще-то в вмие тоже есть автодополнение, которое работает гораздо удобнее и эффективнее чем во все IDE что я видел =)

Знаю я про вимовское автодополнение - для С катит, для С++ не катит. В имаксе аналогично.

>примеру я ещё не видел ни одного IDE что умеет дополнять имена файлов =)

имакс?

Absurd ★★★
()

Учи Хаскель
@
Пиши факториалы

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

>>примеру я ещё не видел ни одного IDE что умеет дополнять имена файлов =)

>имакс?

у вима встроенное лучше - CTRL+F, кажется. // пользователь Emacs

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

Это принципиально неверная позиция. Запускаем программы мы на реальном железе, а не на абстрактном, поэтому надо начинать с самого низа, азов -- с того как работает процессор и что такое биты и байты, а только потом продвигаться вверх. То есть начинать надо однозначно только с Си и без всяких плюсов.

Если начинать с интерпретаторов или с языков, которые заточены под выполнение на сферических конях в вакууме (lisp,haskell и прочие прологи), то получится самый настоящий быдлокодер, который будет изобретать очередной велосипед или писать очередного монстра, а как оно работает и что за этим всем стоит и почему оно так тормозит на новом 8ми ядернике человек не в состоянии будет понять.

Да, есть конечно узкие ниши где начинать надо со скриптов и только со скриптов. Это web-интерфейсы и связанные области. Но программированием я бы это называть не стал. Это всё равно что назвать программистом человека, лабающего формочки на html'е и javascript'е.

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