LINUX.ORG.RU

Помогите выбрать язык программирования


0

3

Создаю тему не для холиваров, а просто потому что замучили муки совести выбора. Ситуация такая. Я не программист, учусь не на программиста. Но изучать новое мне интересно. Когда учился в школе, писал всякую фигню на Паскале, чисто just for fun (информатики в школе как таковой не было). На протяжении последних двух лет писал (и ещё пишу) примитивные программки на Object Pascal (Lazarus под Linux и Delphi 7 под оффтопик). Делал это не из любви к разновидностям Паскаля, а просто из-за учебного плана, ничего значительного на OP не написал. Остальных языков пока не знаю, но хочется чему-то новому и полезному поучиться.

Вопрос такой: какой язык программирования посоветуете изучать, учитывая, что я имею лишь скромные познания в Object Pascal'e? Изучать буду самостоятельно и чисто для себя, грандиозных планов нет. Предполагаемые сферы применения языка - сначала изучение основ и составление консольных программок, потом написание простых GUI-утилит (всяких небольших велосипедов), и наконец работа с небольшими базами данных (задачи вроде каталогизации домашней библиотеки и фонотеки).

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

Спасибо за дельные советы.

★★

Python. Простой синтаксис, полно книг для начинающих на русском и для описанных тобою целей более, чем достаточно. Рекомендую почитать Лутца.

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

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

LexArt ★★ ()

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

Но для многих ЯП есть сайты, где можно ознакомится в общем и целом и на несложном английском. Вот например для Ruby http://www.ruby-lang.org/en/documentation/quickstart/

Alve ★★★★★ ()

почему не продолжаешь на Object Pascal'e писать? Я и на нёи программирую и вот Модулу ковыряю, и ничё, классно программируется. Душевно и приятно, после забивания в голову синтаксиса десятков языков - синтаксис паскаля кажется просто идеальным.

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

>Душевно и приятно, после забивания в голову синтаксиса десятков языков - синтаксис паскаля кажется просто идеальным.

ты просто к нему привык) объективно, он далеко не идеален.

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

Ну вот английский такого уровня я понимаю без проблем :) Спасибо за ссылку, погуглю такие примеры и по другим языкам.

LexArt ★★ ()

C, Perl.
Но это только потому, что они мне сами нравятся. Под Ваше описание подойдёт почти любой более-менее популярный язык.

AITap ★★★★★ ()

как обычно советуют в таких ситуация - питон, а дальше видно будет что нужно.

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

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

LexArt ★★ ()

>у языка не очень сложный синтаксис

существуют книги для начинающих по этому ЯП на русском языке

Scheme + перевод книги «Структура и интерпретация компьютерных программ», самое то для совсем новичка (по крайней мере, так долгое время учили первокурсников MIT).

А вообще, приличных книг по программированию на русском языке очень мало, в основном есть только всякий ширпотреб вроде «С++ за 24 часа», по которому ничему хорошему не научишься. Выучи английский сначала, потом прочитай хотя бы треть книг из http://rutracker.org/forum/viewtopic.php?t=3025624 и только потом читай спеки каких-то конкретных языков. Знакомство с языками начинай с C, C#, Python, Java, OCaml, Common Lisp, Prolog.

hydrogen ()

python, прост и удобен. Для мелкой автоматизации вообще самое то, имхо.

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

Javascript, ибо скоро всё на нем будет :3

оно доживает свои последние дни. Скоро гугл его чем-нибудь заменит

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

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

chinarulezzz ★★ ()

учитывая задачи - FreePascal/Lazarus или C#

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

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

LexArt ★★ ()

Сейчас изучаю python, могу посоветовать его: 1) Простой и понятный синтаксис, динамическая типизация и т.д. и т.п.
2) Книжки есть на русском и полно.

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

Второе - потому что хорошая книга - актуальная книга

Третье - актуальная книга - не всегда хорошая книга. Четвертое - актуальное - отражает одно состояние, а качество - другое. Пятое - качественное - не всегда актуальное. Итого: книги на русском есть хорошие.

chinarulezzz ★★ ()

Присоединяюсь к большинству - Python :)

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

Знаю одну хорошую русскую книгу по VB6 для обучению программированию с нуля. Но объяснять, почему она сейчас неактуальна, надеюсь не надо?

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

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

Про D - уже не помню, но к C-like синтаксису как-то не очень тянется душа. Мне несколько типов операций со звёздочкой * в Си до сих пор снится в страшном сне.

chinarulezzz ★★ ()

почитай SICP и этот вопрос сразу отпадет

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

Так зачем мне объяснять, если ты в общем подтверждаешь мой тезис?)) Юзеру объясняй :)

*Погладил школьный учебник по паскалю за 11 клас... Хорошая книга, и помогает, не актуальная с одной стороны потому что Turbo Pascal преподаётся, а он да больше чем FreeBSD рипнулся, но тем кто знает паскаль - поймут почему она до сих пор актуальна.

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

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

Для нового языка можно оставить старую VM.

baverman ★★★ ()

Эрик Рэймонд советует для начинающих Python.

А я бы посоветовал C, а потом C++ (раз уж ты работал с Pascal, то python может быть очень непривычен). Это поможет отрваться от синтаксиса Pascal, низкоуровневость даст большую базу понимания, а широкие возможности языка научат писать код правильно, самому контролировать себя. Потом легче оценивать другие языки, зная C/C++. Это очень серьёзная база.

Можно, конечно, задумчиво посмотреть в окно и с илитарной надменностью посоветовать Lisp, Haskell или Erlang. Но если прагматично - то всё, что написано в двух предыдущих абзацах.

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

> Сначала - C по Кернигану и Ричи.

Да, поскольку я забыл это указать, а ты - нет, то просто +1. Именно K&R, ТС, именно K&R.

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

Про D - уже не помню, но к C-like синтаксису как-то не очень тянется душа.

ну и зря. Это единственный более-менее вменяемый синтаксис на сегодня. В смысле, си-подобный.

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

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

Мне несколько типов операций со звёздочкой * в Си до сих пор снится в страшном сне

не совсем понимаю о чём речь. Именно в си нет проблем 'несколькими типами' операций.

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

Да, поскольку я забыл это указать, а ты - нет, то просто +1. Именно K&R, ТС, именно K&R.

K&R всё таки сильно устарел. С с тех пор много стандартов сменил и так (т.е. по книге) уже просто не пишут.

mashina ★★★★★ ()

ИМНО в такой ситуации выбор ЯП это как выбор девушки;-)

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

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

>Ну, если не брать Си. Тут объективно хреновый синтаксис, как и С++ впрочем.

Если к нему привыкнуть, то он становится таким же комфортным как и паскаль :) я с паскаля на си переходил.

Теперь пришу на Java, и в общем-то синтаксисом доволен, довольно таки все приятно. Хотя не без исключений. Бесит система импортов.

А С++ вообще ужас преисподней. Это какое-то извращение, а не синтаксис.

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

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

ну и зря. Это единственный более-менее вменяемый синтаксис на сегодня. В смысле, си-подобный

ггг, не смеши меня)

это в любом случае не про паскали будет сказано.

В сравнении с Адой было указано - это во первых. Во вторых цели создания не исключают красивый синтаксис.

не совсем понимаю о чём речь.

Ну, звёздочка как объявление на указатель, звездочка как разыменовывание указателя, звёздочка как операция умножения, звёздочка, звёздочка, звёздочка) А еще код в стиле «указатель на функцию, принимающую указатель на функцию, принимающую и возвращающую число, возвращающую указатель на функцию, принимающую и возвращающую число» - нисколь не красит Си такой возможностью)

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

ггг, не смеши меня)

конечно, не буду, у тебя самого неплохо получается.

Ну, звёздочка как объявление на указатель, звездочка как разыменовывание указателя, звёздочка как операция умножения

итого, набралость две звёздочки оператора, один бинарный, один унарный. Звёздочка в объявлении это как-бы не оператор. Где 4?

А еще код в стиле «указатель на функцию...

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

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

итого, набралость две звёздочки оператора, один бинарный, один унарный. Звёздочка в объявлении это как-бы не оператор.

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

Где 4?

Что четыре?

так это наоборот, замечательно. В общем, это таков уровень языка, а не его синстаксиса

Ты хочешь сказать что такая хрень, зарактеризует Си(С++) с лучшей стороны?)))

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

Если к нему привыкнуть, то он становится таким же комфортным как и паскаль :)

Возможно сказывается то, что паскаль - мой первый язык программирования) В начале правда я его жутко-ненавидел тем, что не было батареек, и я думал что язык плохой) Писал долго на питоне, а потом началось всеядство. После всего вернулся к паскалю, в жизни кроме компов есть много других занятий. Рядом как спасательный инструмент для быстрой разработки ботов - питон, и для души тестирую, играюсь с gnu-modula2. Проще паскаля язык, и грех не помочь разработчикам в хорошем начинании.

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