Форум Академгородка, Новосибирск > Посоветуйте, чем заниматься на Java
Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Посоветуйте, чем заниматься на Java
Форум Академгородка, Новосибирск > Компьютеры и сети > Программирование
Страницы: 1, 2
Rony
Всем привет smile.gif

Некоторое время назад я сменила профессию, сейчас работаю php-девелопером. Работаю в одной конторе примерно 7 месяцев, делаю сайты под заказ. В последнее время приходят мысли, что это не совсем то, чего хотелось бы - скучновато. Хотелось бы меньше кнопочек-картинок и больше внутренней сложной логики. Вот думаю заняться Java. Пока читаю дома книгу Эккеля "Философия Java" (перевод Thinking in Java). Не знаю, в какую область пойти. Вообще привлекает прикладное программирование, веб как-то не очень. Посоветуйте, какие области стоит посмотреть-покопать, чтобы сделать более-менее осознанный выбор? (если что, образование позволяет разнообразие - закончила ММФ)
Eyeless Watcher
Java в большинстве своем тот же веб, ну или на крайний случай "типа ентерпрайз". Идите в плюсы, так куда интереснее.
Rony
Цитата(Eyeless Watcher @ 18.08.2011, 11:45) *


Хмм. Мне казалось, что это было так лет 10 назад.. А сейчас С++ в целом менее востребован, чем Java. Или нет?
Eyeless Watcher
Цитата(Rony @ 18.08.2011, 12:56) *
Хмм. Мне казалось, что это было так лет 10 назад.. А сейчас С++ в целом менее востребован, чем Java. Или нет?

Плюсы? Не очень востребованы? Вам наврали. Посмотрите сами - подавляющее большинство десктопных приложений - это именно плюсы (и си в особо запущенных случаях).
Хорошие плюсисты будут нужны всегда, и платить им в обозримом будущем будут лучше. Другое дело, что порог входа там несколько отличается smile.gif
__kot2
Цитата(Rony @ 18.08.2011, 11:56) *
Цитата(Eyeless Watcher @ 18.08.2011, 11:45) *


Хмм. Мне казалось, что это было так лет 10 назад.. А сейчас С++ в целом менее востребован, чем Java. Или нет?

вот было 10 проектов. из 10 проектов было 5 С++ и 5 Java.
время прошло, стало 20 проектов. из 20 проектов 7 С++ и 13 Java.

то есть кол-во проектов С++ в целом растет, но доля их падает. к тому же С++ потребует от вас море времени на изучение. гораздо разумнее учиться наверное будет яву. она проще в сто раз.
но лично для меня большая загадка что это за ява проекты, кроме веб-серверов.
DeveloperCpp
Сейчас достаточно бурно растет количество мобильных девайсов с Android - ом на борту. Там много чего можно делать на яве.
__kot2
Цитата(DeveloperCpp @ 18.08.2011, 14:26) *
Сейчас достаточно бурно растет количество мобильных девайсов с Android - ом на борту. Там много чего можно делать на яве.

ну да, но телефоны итак тормозные, еще и ява тормозная. думаю, загнется ява на андроиде.
думаете не будет тормозить?
например недавно вышло продолжение клевой игрушки на флеше - http://armorgames.com/play/12009/the-last-stand-union-city я рубился в нее несколько часов, начало бодрое, но фпс на некоторых локациях падал до 10, а потом все, невозможно совершенно стало - только монстры начинают переть, фпс падает меньше 1 и тебя мочат. комп 4ядерный core2 не может флешером написанных плоских человечков на экране обрабатывать, хотя будучи написанной нормально эту игру и 286ой потянет. не верю я в будущее флеша и явы, как языков, на которых хоть что-то нетормозное написать можно даже в очень отдаленном будущем.
Eyeless Watcher
Цитата(__kot2 @ 18.08.2011, 16:01) *
Цитата(DeveloperCpp @ 18.08.2011, 14:26) *
Сейчас достаточно бурно растет количество мобильных девайсов с Android - ом на борту. Там много чего можно делать на яве.

ну да, но телефоны итак тормозные, еще и ява тормозная. думаю, загнется ява на андроиде.
думаете не будет тормозить?
например недавно вышло продолжение клевой игрушки на флеше - http://armorgames.com/play/12009/the-last-stand-union-city я рубился в нее несколько часов, потом все, невозможно совершенно стало - только монстры начинают переть, фпс падает меньше 1 и тебя мочат. комп 4ядерный core2 не может флешером написанных плоских человечков на экране обрабатывать, хотя будучи написанной нормально эту игру и 286ой потянет. не верю я в будущее флеша и явы, как языков, на которых хоть что-то нетормозное написать можно даже в очень отдаленном будущем.

Какая интересная логика. Из того, что кто-то написал приложение на флеше, тормозящее на десктопе, делаете выводы о java на андроиде. Вы хотя бы о том, что там VM другая, слышали?
__kot2
Цитата(Eyeless Watcher @ 18.08.2011, 15:08) *
Какая интересная логика. Из того, что кто-то написал приложение на флеше, тормозящее на десктопе, делаете выводы о java на андроиде. Вы хотя бы о том, что там VM другая, слышали?

а какая разница. дело в подходе. вон возьмите яву. единственный более-менее распространенный проект десктопный на ней это IDEA. писал я под нее, любила она задумываться временами и вообще какая-то неторопливо-эстонская вся была, а рука так и тянулась к иконке вызова сборки мусора, чтоб она хоть ненамного ворочаться начала.
Eyeless Watcher
Цитата(__kot2 @ 18.08.2011, 16:14) *
Цитата(Eyeless Watcher @ 18.08.2011, 15:08) *
Какая интересная логика. Из того, что кто-то написал приложение на флеше, тормозящее на десктопе, делаете выводы о java на андроиде. Вы хотя бы о том, что там VM другая, слышали?

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

А, ну если разницы нет, тогда ок, не вижу смысла спорить.
Единственный распространенный десктопный проект - это сильно, да.
Rony
Вот смотрю я вакансии на job.academ.org, а там java либо для банков (чего не очень хочется - не люблю я финансы всякие), либо веб тот же, либо мобайл. А бывают вакансии для каких-нибудь научно-исследовательских центров скажем? чтоб тематика была поинтересней. Я конечно понимаю, что по мне плачет губозакатывательная машинка, но все же.. rolleyes.gif Или вот еще было бы интересно пописать что-нибудь для устройств типа GPRS-навигатора - всякие оптимальные маршруты и т.п.

Кстати насчет Java ME: там какие проекты вообще бывают, какого плана? Помимо игрушек тех же.
__kot2
Цитата(Rony @ 18.08.2011, 19:47) *
Вот смотрю я вакансии на job.academ.org, а там java либо для банков (чего не очень хочется - не люблю я финансы всякие), либо веб тот же, либо мобайл. А бывают вакансии для каких-нибудь научно-исследовательских центров скажем? чтоб тематика была поинтересней.

разве что в области ИИ. там, где важна скорость ява не вариант. ГИС в основном на С++ пишут.
вообще, ява хороший язык. и ходят слухи что даже первая версия поискового движка была на яве написана. даже вроде как сохранились посты Брина, где он спрашивал почему у него ничего не работает. но потом когда гугл за ум взялся они все на С++ переписали.

нельзя получить хорошую производительность языка с автоматическим управлением памятью (то есть класс задач где они эффектины пренебрежительно мал с общим кол-вом задач), точно так же, как нельзя получить прирост от многопоточности на гомогенной (однородный доступ к памяти всех процессоров) архитектуре. второе - строго доказано. первое - интеитивно и, я думаю, в ближайшие несколько десятков лет тоже будет доказано.
DeveloperCpp
Цитата(__kot2 @ 18.08.2011, 15:01) *
ну да, но телефоны итак тормозные, еще и ява тормозная. думаю, загнется ява на андроиде.
думаете не будет тормозить?



Нет думаю не будет сильно тормозить, поскольку спонтировал программу под Андройд, справедливости ради конечно стоит сказать что не мало функциональной части и достаточно серьезной (работа с графами, сжатие) были написан на С/С++ и использовались через JNI, но все же. Достаточно быстро работает. Но и называть “телефоны” тормозными тоже преувеличение, на них уже ставить ARM Сortex A9/A8 двух/одно ядерные по 1 Ghz, с графическим ускорителем на борту, уже готовиться к выходу четырех ядерные ARM . Вот чипы от Qualcomm – а http://www.qualcomm.com/snapdragon/specs
Так же не малую популярность набирают планшетные компьютеры, так же с установленным Андройдом.

На счет разработки под Андройд, вынужден признать что разработка на JAVA- е особенно UI сложного с анимацией и рющечками и прочей фигни, действительно более быстрая и удобное чем на плюсах, хотя я сам "законченный" плюсовик rolleyes.gif
P.S.
Мне товарищ должен привести такую плату http://www.pandaboard.org/content/platform
Rony
Спасибо вам всем за ответы smile.gif Как я вижу, большинство склоняется к тому, что C++ больше заслуживает внимания, чем Java, если смотреть на сложность задач. Но мне кажется, что браться сразу за ++, имея за плечами только php и дельфи, как-то рановато. Может логичнее начать с Java, а потом уж переходить на тяжелую артиллерию. Или есть риск слишком увязнуть? М?
__kot2
Цитата(Rony @ 19.08.2011, 10:27) *
Спасибо вам всем за ответы smile.gif Как я вижу, большинство склоняется к тому, что C++ больше заслуживает внимания, чем Java, если смотреть на сложность задач. Но мне кажется, что браться сразу за ++, имея за плечами только php и дельфи, как-то рановато. Может логичнее начать с Java, а потом уж переходить на тяжелую артиллерию. Или есть риск слишком увязнуть? М?

С++, C# и Ява синтаксически во многом похожи. только в С++ человек явно понимает где что располагается в памяти, как происходит компиляция и что все финтифлюшки бесплатными не бывают. в яве это все попытались скрыть, для красявости зачем-то убив множественное наследование и перегрузку операторов. и шаблоны там тоже какие-то корявые. ну а C# это просто клон явы с бохатым фреймворком для работы с интерфейсом и БД. идеальный язык для клепания формочек, убивший делфи.
я, зная С++ с явой и C# разобрался, можно сказать, за день. второй-третий язык учится гораздо проще, так что может быть и имеет смысл с явы начать. там все простенько.
anpol
Цитата(__kot2 @ 18.08.2011, 20:40) *
нельзя получить хорошую производительность языка с автоматическим управлением памятью (то есть класс задач где они эффектины пренебрежительно мал с общим кол-вом задач), точно так же, как нельзя получить прирост от многопоточности на гомогенной (однородный доступ к памяти всех процессоров) архитектуре. второе - строго доказано. первое - интеитивно и, я думаю, в ближайшие несколько десятков лет тоже будет доказано.

По поводу первого - прямых доказательств снижения производительности нет. Есть исследования, демонстрирующие сравнимую и даже более высокую производительность при использовании GC.

Можно утверждать, что скорость выделения памяти выше в случае с GC, чем без него. Скорость освобождения может быть сравнима и достаточно предсказуема, это зависит от выбранного алгоритма.

Нельзя рассуждать о GC, ориентируясь только на Java. Во-первых, потому, что модель памяти Java устроена так, что выделяет много объектов из динамической памяти. Во-вторых, потому, что GC — это не один универсальный алгоритм, а несколько разных, предназначенных для решения разных задач.
anpol
Цитата(Rony @ 19.08.2011, 10:27) *
Спасибо вам всем за ответы smile.gif Как я вижу, большинство склоняется к тому, что C++ больше заслуживает внимания, чем Java, если смотреть на сложность задач. Но мне кажется, что браться сразу за ++, имея за плечами только php и дельфи, как-то рановато. Может логичнее начать с Java, а потом уж переходить на тяжелую артиллерию. Или есть риск слишком увязнуть? М?

Python + Django. Вам понравится.
Astronom
Цитата(Rony @ 18.08.2011, 10:53) *

Я вам завидую.
__kot2
Цитата(anpol @ 20.08.2011, 1:38) *
По поводу первого - прямых доказательств снижения производительности нет. Есть исследования, демонстрирующие сравнимую и даже более высокую производительность при использовании GC.

нет, исследования то конечно есть. и даже есть люди, которые утверждают, что ява может давать более эффективный код в некоторых случаях. я то про практику. а на практике что ява что C# горятся только для реализации подтормаживающего интерфейса, да серверов. в остальных случаях на них все раздражающе тормозит. хотите поспорить? ну напишите например, телеконференцию типа скайпа на яве. она fps 1-2 покажет в лучшем случае. а вот утилитку по настройке этой самой конференции вполне можно и на яве написать. она конечно будет загружаться несколько секунд и переключаться между экранами по секунде-две, пока там сообразит супер-пупер мэмори менеджмент, но это в общем-то нормально.
в общем-то сама ява в этом не виновата, она провоцирует на написание такого тормозного кода. это вот как реализация quicksort в ф-ом программировании. мы берем массив, создаем два новых, в левый, зинамически раздувая, помещаем элементы меньше x, в другой больше x, рекурсивно для них вызывает и потом эти два массива соединяем в третий. реализация то корректная, но страшно тупая в плане использования памяти и переливаний из пустого в порожнее. а так как "об правильном и быстром использовании памяти должен думать компилятор", то типичного программиста это не смущает. вот ява такой же фигней занимается большую часть времени.
Rony
Цитата(anpol @ 20.08.2011, 1:41) *
Цитата(Rony @ 19.08.2011, 10:27) *
Спасибо вам всем за ответы smile.gif Как я вижу, большинство склоняется к тому, что C++ больше заслуживает внимания, чем Java, если смотреть на сложность задач. Но мне кажется, что браться сразу за ++, имея за плечами только php и дельфи, как-то рановато. Может логичнее начать с Java, а потом уж переходить на тяжелую артиллерию. Или есть риск слишком увязнуть? М?

Python + Django. Вам понравится.


Почему? Аргументируйте. smile.gif

Про Питон я только слышала, но как понимаю, это тот же веб. По описанию на пхп смахивает - динамическая типизация, GC, смесь парадигм.
Rony
Цитата(Astronom @ 20.08.2011, 1:57) *
Цитата(Rony @ 18.08.2011, 10:53) *

Я вам завидую.



blink.gif С чего бы?
__kot2
Цитата(Rony @ 20.08.2011, 10:05) *
Цитата(Astronom @ 20.08.2011, 1:57) *
Цитата(Rony @ 18.08.2011, 10:53) *

Я вам завидую.

blink.gif С чего бы?

наверное хочет такого же покемона как у вас на плече. эхх, я тоже
Lebovsky
С точки зрения прикладного программирования c++ от Java отличается в основном ручной memory management.
Иногда это крaйне необходимо - но в большинстве случаев (у большинства средних программистов) ведет только к более тяжелым багам и потере памяти.
Так что выбирая нежду c++ и Java – учите Java.
anpol
Цитата(Rony @ 20.08.2011, 10:04) *
Про Питон я только слышала, но как понимаю, это тот же веб. По описанию на пхп смахивает - динамическая типизация, GC, смесь парадигм.

«тот же веб» можно сказать много про что. В питоне нет GC, но есть подсчёт ссылок + детектор циклов. «Смесь парадигм» — это же хорошо, C++ — тоже смесь парадигм.

На Python можно программировать много чего, начиная от консольных утилит (= тот же Perl или Shell), до кросс-платформенного десктопного GUI на PyQt (= тот же C++). Если вы уже умеете писать для веб на PHP, то и незачем отказываться от этих знаний. Например, в Яндексе активно используют Python для веб-программирования. В Гугле используют для всего подряд, как для консольных поделок, так и для серьёзных проектов.

Если захочется пойти дальше, можно научиться вызывать C++ из Python и переписывать часть кода на C++.
Astronom
Цитата(Rony @ 20.08.2011, 10:05) *
Цитата(Astronom @ 20.08.2011, 1:57) *
Цитата(Rony @ 18.08.2011, 10:53) *

Я вам завидую.



blink.gif С чего бы?

Ну, работаете по специальности, нашли себя, находите время и возможность учить новый язык. Да и в целом девушек программистов очень уважаю smile.gif
joyrider
програмизмом
joyrider
програмизмом
homeness
Цитата(Astronom @ 20.08.2011, 13:06) *
Цитата(Rony @ 20.08.2011, 10:05) *
Цитата(Astronom @ 20.08.2011, 1:57) *
Цитата(Rony @ 18.08.2011, 10:53) *

Я вам завидую.



blink.gif С чего бы?

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


Вот Даниела Энгерт на Жабе не пейсала smile.gif А зачем Java, вообще, нужна? Кроме тормозов и глюков ничего нет.
homeness
Осваивайте ассемблер. Можно начать с x86 дабы сразу была возможность опробовать.
homeness
А если по существу, то можно написать виртуальную машину x86 для Ява-машины smile.gif Представляете как здорово будет запускать нативный код на нативной же платформе через Яву cbs_madlaugh.gif

"Программа написанная на форте работает быстрее программы, написанной на ассемблере, потому что она обращается к регистрам напрямую, минуя процессор." (с) ...
Rony
Цитата(__kot2 @ 20.08.2011, 11:28) *
наверное хочет такого же покемона как у вас на плече. эхх, я тоже


Это не покемон, а белколис, их Хаяо Миядзаки производит. Можете к нему обратиться smile.gif
Rony
Цитата(Astronom @ 20.08.2011, 13:06) *
Ну, работаете по специальности, нашли себя, находите время и возможность учить новый язык. Да и в целом девушек программистов очень уважаю smile.gif


Я не считаю то, чем занимаюсь конкретно сейчас, чем-то очень серьезным smile.gif Писать сайты с сомнительной ценностью - это не то. И это не моя специальность таки, я по специальности чистый математик (геометр). Раньше. когда я занималась наукой, как раз было некое ощущение полезности. Поэтому себя я еще ищу. smile.gif
Rony
Цитата(homeness @ 20.08.2011, 17:39) *
А если по существу, то можно написать виртуальную машину x86 для Ява-машины smile.gif Представляете как здорово будет запускать нативный код на нативной же платформе через Яву cbs_madlaugh.gif

"Программа написанная на форте работает быстрее программы, написанной на ассемблере, потому что она обращается к регистрам напрямую, минуя процессор." (с) ...


Пришли и издеваются над новичком.. bayan3.gif
Barthezz
"Вы все неправы" (с)
Исходя из Ваших заявлений я склоняюсь к тому, что Вам должно быть ближе учить С++.
Потому что:
1) С++ -> Java считается более правильным, чем наоборот. Потому как управление памятью сначала лучше освоить сложное, потом понять, зачем надо придумать упрощенное, а не наоборот. Перегруженные операторы, по-моему не столь важны.
2) Java - либо энтерпрайз, либо андроид, либо поделки кросс-платформенные. Вам может понравиться скорее последнее. Нередко математические и статистические пакеты пишутся на смеси плюсов и джавы.
В общем, я за плюсы smile.gif
__kot2
Цитата(Barthezz @ 20.08.2011, 23:24) *
В общем, я за плюсы smile.gif

но к тому времени когда вы изучите С++, вам программирование может вообще надоесть. согласен с одним товарищем, который написал на этом форуме "понимание С++ приходит примерно лет через 10 работы на нем"
Minoru
Рекомендую для начала попробовать применить навыки, за которые Вы бы хотели, чтобы Вам платили, в каких-нибудь свободных проектах. А насчет того, что лучше - C++ или Java - местные могут еще страниц 50 написать, и так и не прийти к единому мнению smile.gif
Barthezz
Цитата(__kot2 @ 21.08.2011, 9:48) *
Цитата(Barthezz @ 20.08.2011, 23:24) *
В общем, я за плюсы smile.gif

но к тому времени когда вы изучите С++, вам программирование может вообще надоесть. согласен с одним товарищем, который написал на этом форуме "понимание С++ приходит примерно лет через 10 работы на нем"

Та же фигня со всей математикой, по крайней мере лично у меня. Далеко не всё из того, я проходил в универе было сразу интуитивно понято. бОльшая часть осознается после получения личного опыта и набитых шишек smile.gif
Rony
Цитата(Barthezz @ 20.08.2011, 23:24) *
"Вы все неправы" (с)
Исходя из Ваших заявлений я склоняюсь к тому, что Вам должно быть ближе учить С++.
Потому что:
1) С++ -> Java считается более правильным, чем наоборот. Потому как управление памятью сначала лучше освоить сложное, потом понять, зачем надо придумать упрощенное, а не наоборот. Перегруженные операторы, по-моему не столь важны.
2) Java - либо энтерпрайз, либо андроид, либо поделки кросс-платформенные. Вам может понравиться скорее последнее. Нередко математические и статистические пакеты пишутся на смеси плюсов и джавы.
В общем, я за плюсы smile.gif



Угу, спасибо smile.gif Но для меня все-таки достаточно остро стоит вопрос времени - хотелось бы быстрее начать работать. А с плюсами боюсь это затянется..

Цитата(Minoru)
Рекомендую для начала попробовать применить навыки, за которые Вы бы хотели, чтобы Вам платили, в каких-нибудь свободных проектах.



То же самое, что к предыдущему сообщению - нехватка времени и других ресурсов.


Еще вот один вопрос интересует, но боюсь, что на него мне вряд ли кто ответит: куда собственно можно пробоваться новичку с такими потребностями? Вот в инете я подобных вакансий не вижу или там нужны уже совсем не новички..

Дубль Гис отметается - на собеседовании мне сказали, что на стажировку нужно ездить 2 месяца в город.. ohmy.gif
Nebo Zdes!
Цитата(Rony @ 22.08.2011, 20:35) *
Дубль Гис отметается - на собеседовании мне сказали, что на стажировку нужно ездить 2 месяца в город.. ohmy.gif

Всего два? Мне предложили 6.
__kot2
Цитата(Rony @ 22.08.2011, 19:35) *
Дубль Гис отметается - на собеседовании мне сказали, что на стажировку нужно ездить 2 месяца в город.. ohmy.gif

по-моему это вообще не проблема.
я однажды месяц ездил на работу за 100км в одну сторону. что называется, было бы желание.
мой родственник в америке так ездит каждый день лет 5 уже до сих пор. подьем в 5 утра и попердолил.
Rony
Цитата(__kot2 @ 23.08.2011, 9:41) *
Цитата(Rony @ 22.08.2011, 19:35) *
Дубль Гис отметается - на собеседовании мне сказали, что на стажировку нужно ездить 2 месяца в город.. ohmy.gif

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



Ну это от человека зависит. Я например регулярно в 5 утра вставать не смогу, и в 7 тоже smile.gif Конечно если припрет совсем, человек способен на все, но тяжело.. Потом весь день злюсь и усталая.
lost_shadow
Цитата(Rony @ 20.08.2011, 10:04) *
Про Питон я только слышала, но как понимаю, это тот же веб. По описанию на пхп смахивает - динамическая типизация, GC, смесь парадигм.


Это - язык общего назначения с большим количеством биндингов к сторонним библиотекам.
Из недостатков - низкая скорость, высокое потребление памяти, незамороженные интерфейсы в большинстве библиотек, отсутствие истинной многопоточности, медленный старт приложений из-за динамической загрузки модулей.
Из преимуществ - очень лёгкий и понятный язык. Кода получатся меньше, чем на Java/C++ и код получается проще. У языка простая идеология, в частности всё - это объект, то есть класс - тоже объект, и модуль/пакет - тоже объект, их можно принимать, возвращать, менять. Отличная интроспекция - можно у любого объекта узнать все его характеристики. Есть аналог деструкторов - они запускаются не "когда-нибудь, когда GC до них дойдёт", а немедленно, как только на объект не осталось ни одной ссылки. Хороша развита динамика, есть контроль над многими процессами - в том числе над процессом создания класса (я имею в виду метаклассы). Есть востребованный синтаксический сахар - декораторы, свойства. Исходники всех библиотек открыты и всегда можно заглянуть в них за исключением использования нативных модулей. Для любых ошибок легко найти причины - видно трейсбэк, файл и номер строки и почти никогда не нужно лезть в другие файлы за поиском причин. В трейсбэк можно включить и имена и значения переменных на всех уровнях стека. Компилятор работает на лету и никогда не выдаёт 100500 ошибок компиляции, из которых нужно выбрать ту, которая на самом деле является ошибкой. И принцип duck typing мне нравится.

Я не стал углубляться в Java не потому, что считаю её плохой, а потому, что на ней пишут давно. Программистов на Java огромная куча, на ней пишет чуть ли не каждый второй, половина из них уже собаку съели в этом деле и потому достичь среднего среди java-разработчиков опыта/уровня можно лишь лет за 5. Питон тогда только начинал широко расцветать, а конкурентов за зарплату на этом поприще практически не имелось.
anpol
Цитата(lost_shadow @ 24.08.2011, 17:38) *
Питон тогда только начинал широко расцветать, а конкурентов за зарплату на этом поприще практически не имелось.

Очень интересно, а какие вакансии предлагают сейчас в Новосибирске для программистов на Python? Какого рода работа, какие библиотеки/фреймворки востребованы?

(лично я на C++ программирую, если что)
lost_shadow
Этого не знаю, большинство моих знакомых python-программистов работает не на Россию. Полагаю, спрос в России вообще и в Новосибирске в частности пока низок, но будет увеличиваться со временем, планомерно, без бума. Скорее всего благодаря в первую очередь django это будет в области веба на задачах создания сайтов классом сложности выше тех, что обычно пишутся на PHP и ниже тех, что обычно пишутся на Java. Не последнюю роль сыграет в этом и то, что питон вчистую уделывает PHP по количеству библиотек общего назначения, но до enterprise сильно не дотягивает по строгости. PHP же вчистую уделывает питон в лёгкости развёртывания сайта и стоимости хостинга, и хотя со всё большим развитием и снижением цен на технологии виртуализации этот недостаток всё менее значим, сайты-визитки на 3 страницы делать на python в ближайшем будущем вряд ли кто станет. Всё сказанное в этом посте - лишь мои интуитивные догадки, не подклеплённые аргументами, кто бы его ни прочитал - отнеситесь критически к каждому слову.
Minoru
Увы, но практика показывает, что питонщики неспособны долгое время выдерживать стройный и стабильный API. В связи с чем развертка программы, написанной на Python, может превратиться в весьма нетривиальную задачу.
busa
Цитата(Minoru @ 25.08.2011, 14:18) *
Увы, но практика показывает, что питонщики неспособны долгое время выдерживать стройный и стабильный API. В связи с чем развертка программы, написанной на Python, может превратиться в весьма нетривиальную задачу.

способны привести пример? 2.x -> 3.x не принимается
lost_shadow
Цитата(Minoru @ 25.08.2011, 13:18) *
Увы, но практика показывает, что питонщики неспособны долгое время выдерживать стройный и стабильный API. В связи с чем развертка программы, написанной на Python, может превратиться в весьма нетривиальную задачу.


Не совсем - способны, но не делают этого. Ты, похоже, знаешь плюсы фиксации API, но не знаешь минусы. Стабильный API при развитии библиотеки приводит к тому, что появляется 10 способов сделать одну и ту же вещь, причём 4 из них плохи, а ещё 4 - вообще никуда не годятся. Этого можно избежать только в том случае, если разработчики API видят будущее развитие проекта на много лет вперёд и никогда не допускают ошибок. Хотя нет, есть ещё один способ - обратная совместимость API сохраняется, устаревшие избыточные способы не появляются, но проект при том не развивается.
Приведу пример - сначала в django сделали формы. Потом, году в 2007м (версия 0.95 или 0.96), поняли, что сделали хреново и можно сделать на порядок лучше, потому вместо длительной поддержки старых форм оставили её где-то на год и сделали новые формы, лучше старых. Сейчас о старых формах никто и не вспомнит, но подумай - если бы тебе пришлось изучать django, ты бы мог, решая задачу, столкнуться в чьём-то коде со старыми формами и должен был бы взять и изучить их, когда это теперь уже абсолютно никому не нужно. Разработчики перестают ломать обратную совместимость API обычно с первой версии, потому если ты используешь нулевую версию, тебе придётся выбирать - держать в проекте старую версию библиотеки/фреймворка или обновить её и переписать часть кода, обычно очень незначительную. Если тебе это не нравится - не используй нулевые версии библиотек, а в остальных API фиксирован.
anpol
Цитата(lost_shadow @ 25.08.2011, 1:27) *
выше тех, что обычно пишутся на PHP и ниже тех, что обычно пишутся на Java. Не последнюю роль сыграет в этом и то, что питон вчистую уделывает PHP по количеству библиотек общего назначения, но до enterprise сильно не дотягивает по строгости.

Поясните, пожалуйста, мысль про enterprise в контексте Java против Python.

От себя поясню, что я сталкивался с удручающе плохим enterprise-кодом на Java, несмотря на формальное использование передовых фрейморков (типа Spring) и архитектурных методик (типа Dependency Injection). А всё самое страшное происходит на JSP. Сложилось впечатление, что методики и фреймворки — хорошие, но руки бывают кривые. В Яве легко работать по готовым решениям, но далеко не все мотивированы эти решения полноценно изучать, а уж тем более сделать следующий шаг — подумать головой.

Хочется в общих чертах узнать, чего такого нельзя сделать на enterprise Python, если просто знать, как.
Dassie
Цитата(__kot2 @ 18.08.2011, 20:40) *
Цитата(Rony @ 18.08.2011, 19:47) *
Вот смотрю я вакансии на job.academ.org, а там java либо для банков (чего не очень хочется - не люблю я финансы всякие), либо веб тот же, либо мобайл. А бывают вакансии для каких-нибудь научно-исследовательских центров скажем? чтоб тематика была поинтересней.

разве что в области ИИ. там, где важна скорость ява не вариант. ГИС в основном на С++ пишут.

Мы пишем специализированную ГИС на Java (точнее, алгоритмы написаны на плюсах, а UI на базе Eclipse RCP). Кстати, ищем программиста.

Реально большие CPU-bound задачи решают в основном на С++ или Fortran, realtime - на С/C++, а I/O-bound, каковых немало, становится более-менее всё равно на чём. Если данных столько, что они в память не лезут, обмен с диском мажорирует всё.
__kot2
Цитата(lost_shadow @ 26.08.2011, 2:25) *
Стабильный API при развитии библиотеки приводит к тому, что появляется 10 способов сделать одну и ту же вещь, причём 4 из них плохи, а ещё 4 - вообще никуда не годятся. Этого можно избежать только в том случае, если разработчики

включают голову
stl менялась совершенно незначительно до стандартизации ее лет 15 назад. с тех пор только микрософт самодеятельность некую развернул с обьявлением конструктора auto_ptr, которым все равно никто не пользуется
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2024 IPS, Inc.