LINUX.ORG.RU

Расширение сферы знаний и выбор ЯП, нужны советы


0

2

Привет всем, который год программирую под веб на php. Но с каждым годом понимаю что хочется что-то нового. Присматриваюсь к другим ЯП, но их так много, что не хочется даром терять время на что-то, что в конечном итоге может оказать не нужны для моих потребностей. Скажу сразу, что коддинг для меня скорее just for fun, но это одно из любимых занятий. И так чтобы я хотел от ЯП:

1. кроссплатформенность. очень люблю linux, но и за окошками приходится трудится. на этом этапе два кандидата (java, qt). Судя по описаниям первое кажется тяжеловатым, но интересным. Второе имеет прекрасную возможность компилится под вин и линь из одного исходного кода. Но тут напрашивается вопрос, для написания на QT требуются знания плюсов?

2. написание как десктопных приложений, так и веб приложений. Тут, судя по описаниям, подходит JAVA

3. мне не критично время на изучение.

4. какие ЯП подходят под первые два пункта?


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

просто хотел бы еще почитать мнения ЛОРовцев...

Ну-у, это сейчас тебе навалят вариантов от души. От ассемблера до хаскеля. =)

И ещё посоветуют SICP и Кнута читать. :)

Потом придёт анонимус, всех обложит матом и скажет: учи Common Lisp. :)

OldFatMan
()

написание как десктопных приложений, так и веб приложений

Python + PySide

Тут, судя по описаниям, подходит JAVA

Ты ради интереса потрагай дюжину ДЕСКТОПНЫХ приложений на жабе и ответь на вопрос: я хочу плодить говно?

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

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

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

ну говно не говно, но тормознутость ощущается.

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

У меня работает пяток десктопных приложений на Java. Не идеал, но и не «говно».

PS: Не джавист, и не фанат Java. Но и помои на неё лить просто так не намерен.

OldFatMan
()

just for fun

Ну, раз justforfun, то можно смело советовать Racket:
http://www.racket-lang.org
+ кроссплатформенность (Windows/Linux/OS X, скорее всего есть в репах твоего дистрибутива)
+ кроссплатформеная среда разаботки
+ веб (см. примеры на главной странице сайта)
+ отличная документация
+ Книга(sicp)
А гланое, ЯП сам по себе оч. интересный и мощный.

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

Я достаточно часто пользуюсь связкой C + guile(scheme). Но для web-приложений это не самый подходящий вариант. И чистая scheme тоже.

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

У меня работает пяток десктопных приложений на Java. Не идеал, но и не «говно».

Кому и кобыла невеста. Отрицать, что у жаба большие проблемы с гуем, по-моему, могут только упоротые.

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

Отрицать, что у жаба большие проблемы с гуем, по-моему, могут только упоротые.

А какие у нее поблемы с гуем? (не java-программист)

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

Ок, Ok. «Упоротый» спрашивает: какие именно «большие проблемы с гуем» у Java. Интерфейс слегка корявенький, не идеальный (повторяю ещё раз), но в чём «большие проблемы»?

OldFatMan
()

Расскажу историю из личного опыта, что тебе будет более полезно, чем просто «Пиши на С!». Начну издалека.

Когда-то давно я начинал кодить на Ассемблере. Кодил, кодил, считал, что это самое классное, что можно быть вообще. Потом я точно как и ты подумал, что надо бы от микроконтроллеров перебираться к десктопу и десктопным приложениям. И начал осиливать паскаль. Осилив на нем все алгоритмы и прочее, я полез в делфи, и стал клепать шуточные поделки, чем сильно бесил админов нашей шараги. Потом я попал на ЛОР, где люди яростно орали, что надо кодить на С. И я осилил С. Потом С++. И я любил их искренне и бесповоротно. Потом перешел на Qt, что было довольно просто, ибо я знал С и С++. Накодив на С++ большую часть своего опенсорсного проекта, я положил на него большой и толстый болт, попробовав по советам людей питон, а потом Java и C#. Честно скажу, писать на этих языках после С - это как трахать красивую грудастую бабу после подзаборной замухрыжки. Это приятно и вызывает какие-то эйфорические ощущения. Так что мой тебе совет - пиши на С.

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

какие именно «большие проблемы с гуем» у Java

Не только с гуем, а вообще десктопностью:

1. большой расход памяти;

2. долгий запуск;

3. сглаживание не нативное (вроде что-то в openjdk делают, но я пользуюсь оракловской жабой);

4. ненативный L&F:

4.1. линукс — сдвиги есть, но все равно без слез не взглянешь, я переключаю на нимбус;

4.2. винда — многочисленные мелкие косяки и тормоза (попробуйте ресайз окна, например);

4.3. мак — тут, вроде, все норм;

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

p.s. смотрел биндинги java-gnome — вот там все ок, гуй нативный, памяти жрет мало, запускается быстро. Но они полумертвые, вроде, и никем не используются. А жаль.

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

Здорово!

Я бы предложил в цитаты, но длинновато. :)

Поэтому предлагаю сохранить, и при появлении 100500-го поста с вопросом «Какой ЯП посоветуете изучать?» автоматически ставить этот ответ самым первым комментом.

OldFatMan
()

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

/

Скажу сразу, что коддинг для меня скорее just for fun, но это одно из любимых занятий.

Exception in thread «main» java.lang.ArithmeticException: / by zero
at ExceptionTutorial01.divide(ExceptionTutorial01.java:6)
at ExceptionTutorial01.main(ExceptionTutorial01.java:15)

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

1. большой расход памяти;

Пусть жрёт - мне, как пользователю, пофик. Объём памяти, установленной на системах, растёт постоянно.

2. долгий запуск;

1-2 секунды (это я про используемые мною приложения). Для меня это не долго. Пусть красноглазики фапают на микросекунды.

3. сглаживание не нативное (вроде что-то в openjdk делают, но я пользуюсь оракловской жабой);

Так я же говорил: да, корявенько слегка, но сносно. То есть, это не слишком «большая проблема».

4. ненативный L&F:

Ну, не знаю...по мне, так это вообще не проблема. Немного мысленно перестроился и вперёд.

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

Да и не надо придумывать - десктопные приложения на Java есть, и ими вполне можно пользоваться. Кому не нравится - не пользуются.

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

Кстати, Racket, как самая лучшая scheme, действительно почти во все поля подходит. Сам не так давно начал ковыряться. Но вот насчёт web-приложений пока есть сомнения. Да и вообще - lisp далеко не всем подходит, далеко не всем нравится.

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

Честно говоря, я даже не думал предлагать Яву.

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

Который раз отвечаю - все проблемы из-за легкости неоптимальной разработки на Java. У меня ничего не тормозит, я привык писать под телефоны с 700 кб памяти и 180-200 мгц процессорами без jit.

Мои аргументы против не связаны с языком:
1. Действительно плохой интерфейс. Можно использовать SWT, или попробовать javafx 2.0, тут неоднозначно все.
2. Необходимость в java-машине. У большинства она есть, но как-то не принято требовать обязательной установки 20-мегабайтного пакета. Не знаю, можно ли по лицензии таскать ее с собой.

Аргументы за:
1. Реальная кроссплатформенность.
2. Очень быстрая виртуальная машина, молниеносный GC, если задать правильные параметры запуска и не злоупотреблять выделениями (тут и C++ затормозит).
3. Много одинаковых приемов программирования для сервера, десктопа и андроида.

Но сейчас я бы выбрал QML + C++11.

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

в phpStorm к примеру jre вшит в установочник

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

Так что мой тебе совет - пиши на С.

Вот забавно. Раньше любой тред на ЛОР'е скатывался к Gnome vs. KDE либо C++ vs. Haskel. Затем гном самозакопался, а флуд про хаскель всех задолбал.

Теперь темы регулярно скатываются к сиськам (IMHO, явный прогресс для лоровца).

Мой совет - пиши на том, что больше нравится, если just for fun. А по поводу использовать десктопное приложение через web, подумай, возможно, проще будет для нужных функций десктопного приложения сделать веб интерфейс на другом языке (php, python, Ruby(RoR)). Только заранее нужно будет продумать архитектуру приложения, чтобы это было возможно (библиотека, реализующая основной функционал + интерфейс (десктопный или веб)). Кроме того, между вебом и десктопом есть такая разница, что на десктопе у тебя приложение запущенно постоянно и ждет от тебя команд, а в вебе у тебя идет запрос-ответ, запрос-ответ и чтобы хранить состояние работы между запросами нужно явно постараться, например, запустить приложение как сервис (демон).

Варианты тебе уже предложили: C++(Qt), Python + Qt.

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

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

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

Начинаю склоняться к Python... Скачал несколько программ, работают довольно таки шустро + хороший FW Django по мнениям других...

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

PS: Перфекционист?

Безуспешно пытаюсь излечится :-)

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

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

странный совет...

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

> > (YЧN COMMON LNSP, СУКА!!!11 YЧИ COMMON LNSP (ИЛИ Я ВЫЕБУ ТЕБЯ В РОТ!!!!1111))

> Cool story, bro. Я плакаль.

Partiallyfixed.

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

Python с его GIL и кривым/отсутствующим JIT устарел 10 лет назад.

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

Так что пайтон в топку, лучше перл или окамль.

Да, удивляюсь, а где фанаты Ruby? Или у них уже молоко на губах обсохло и они успокоились и перестали лезть с ruby во все темы?

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

> Если совсем радикал, можешь поучить Assembly.

Ты бы выучил, как пишутся слова и что они значат, а уже после начинал ими пользоваться.

anonymous
()

C#, VB.NET, Java

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

Zhbert

красивую грудастую бабу после подзаборной замухрыжки.

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

CrossFire ★★★★★
()

Python

/thread

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

странный совет...

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

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

А мне показалось, что ты ревнуешь к той грудастой молодухе оттого шлёшь всех к подзаборной шлюхе. ;)

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

Потом я попал на ЛОР

я осилил С

Потом С++

Потом перешел на Qt

питон

потом Java

C#

Это за 2 с лишним года ты освоил 6 языков? И можешь уверенно сказать, что уровень знания выше print «Hello world»? Уважуха, чё.

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