Ruby @ восходящее солнце

fixxxer

К.О.
Партнер клуба
Ну, дык там вся эта логика скрыта внутри, а снаружи обычная динамическая типизация и остается.

Конечно можно это и вытащить на уровень языка вместе с вариантами, но уже представляю какое это получится феерическое говно.
 

Sherman

Mephi
Мы же не об этом. Мы о том, что "несовместимо с динамической типизацией". Совместимо, как видишь.

На уровне языка это кстати может жить. В c# 4.0 появился dynamic.

Сермяжная правда состоит в том, что в 95% случаев, если мы говорим о серьезном приложении, которое написано за деньги, использование динам. типизации _НЕ ОПРАВДАНО_ и ведет только к появлению ошибок. Зато есть 5% случаев, когда это нужно.

В том же php хороший программист объявляет интерфейсы, не пользуется автокастами, ставит assert. То есть пытается решить проблему обходным путем, а надо всего лишь взять правильный язык программирования :)
 

fixxxer

К.О.
Партнер клуба
Зато в джаве замыканий нет! :)

Оправдание в php очевидное - когда он начинался как Personal Home Page/Forms Interpreter, было вполне логично избавиться от явных преобразований из string (а в http-запросе у нас всегда строки) в скажем integer...

Или ты хочешь донести, что Java намного лучше подходит для разработки серьезных бизнес-приложений? Ну... Спасибо, капитан. :)

И да - совместимо-не совместимо, а в php это будет как седло на корове, BC же блюсти надо. В таких условиях даже ни с чем особо не конфликтующие неймспейсы-то получились как непонятно что.
 

Sherman

Mephi
2fixxxer
Замыкания будут ;-)

Я не говорил про java. Я могу привести в пример haskell. Там мощная система вывода типов(не надо указывать явно тип), но при этом статическая типизация. Или тот же c#.

Я сам долгое время был в плену заблуждения, что java - это что-то неповоротливое. дык вот за 5 лет, которые я ее не видел с последнего знакомства, она преобразилась. А сколько стало frameworks отличного качества. И проблемы с производительностю порешали.

При всем при этом, темпы развития языка и библиотек просто неверотяны. А сколько скриптовых языков существует для jvm?

В заключении один только пример, как сегодня можно писать вебню на java:
http://hpaste.org/fastcgi/hpaste.fcgi/view?id=23315#a23315

Удачи.
 

fixxxer

К.О.
Партнер клуба
Я архитектурные решения сам в спринге подсматриваю. :) Спринг крутой.

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

nerezus

Вселенский отказник
> но именно так себе его работу и представляю.
Зря.

> а иначе как hiphop "перевел" php var -> c++ type ?
А почему вы уверены, что это случилось?)

> что-то типа boost::variant
Что-то типа zval? ;)
 

fixxxer

К.О.
Партнер клуба
А вот кстати.

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

Если кто кинет ссылочку - буду благодарен.
 

Sherman

Mephi
2fixxxer

Java вообще разрабатывается через JCP. Есть спецификация, есть имплементации. Многие компоненты и frameworks давно уже в open source, включая jvm, j2se, jdk, j2ee компоненты, jboss(один из app серверов) и многое другое.

Ссылко:

Спека на язык: http://java.sun.com/docs/books/jls/
Спека на jvm: http://java.sun.com/docs/books/jvms/
Разные другие спеки: http://jcp.org/en/home/index

Вообще через goog все находится на раз ;-)
 

nerezus

Вселенский отказник
fixxxer http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html
Достаточно глубокий уровень "сделайсамности"?))
 

fixxxer

К.О.
Партнер клуба
Спасибо )

Это уже слишком глубокий. :)

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

-~{}~ 12.03.10 13:25:

Автор оригинала: dimagolov
ты про то, как компилять исходники в jar-ы без IDE?
Не, ну про ant я в курсе. :) А всякие IDE вообще не приемлю, мне они неудобны. Я скорее о том как внутрях работает аппсервер.
 

Sherman

Mephi
2fixxxer

Ну без IDE на java почти никто не работает, так как с IDE _значительно_ проще и быстрее. Во-первых, IDE находит массу ошибок в compile time(точнее пока вы еще пишете текст программы :)), потому что типы можно вывести. Во-вторых, для очень многих вещей существуеют GUI редакторы или code complete. Это полезно, так как помнить форматы множества конфигов - сложно. В третьих, IDE предоставляет удобные механизмы исследования исходного кода. И в четвертых, есть превосходный GUI к отладчику и профайлеру. И в пятых, и в десятых ;-)
 

fisher

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

а олдовый подход простой - если ты "запомнить" над-язык не в состоянии (это называется интуитивно понятный API) - то никакой тебе IDE уже не поможет.
 

fixxxer

К.О.
Партнер клуба
Ну я вот, можно сказать, строю надязыковую модель (в некотором смысле, хотя такого мало) и (почти) каждый класс кладу в отдельный файл, при этом обхожусь исключительно vim+bash и все прекрасно помню где чего. Что я делаю не так? :)

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

Sherman

Mephi
2fisher
Да ну бросьте спекулировать, в не-java мире же api ничуть не меньше. Они же надязыковые. RPC, например. Или WSDL. Внешние сервисы. OS specific api(в java из почти нет в userland!) Просто одно дело вы переключаетесь из редактора в man, а я могу тот же man почитать и в IDE.

Кроме code complete и gui editors я перечислил и еще ряд преймуществ, которые не дает обычный редактор.

При этом я сам пробовал довольно плотно vim, например вместе с php и с++. В конце концов у вас будет своя собственная IDE или даже ОС, внутри vim. Только вы найдите работодателя, который заплатит за этот процесс, пока вы тут себе рабочее место настраиваете :) А с IDE уровня Eclipse или Netbeans я получаю готовое рабочее место, привычное мне за время=равное сборке проекте на целевой машине.

Машинки сейчас мощные, интернеты широкие, не вижу смысла "жить в пещере" :-/

p.s.
Картинка по случаю:
http://www.slideshare.net/arhan/counting-people-by-anton-arhipov Слайд 62
 

fixxxer

К.О.
Партнер клуба
>> Только вы найдите работодателя, который заплатит за этот процесс, пока вы тут себе рабочее место настраиваете :)

ээ

пара pkg_add / apt-get
и
scp -r fixxxer@мой-сервак:.vim* ~/
 

Sherman

Mephi
Автор оригинала: fixxxer
Ну я вот, можно сказать, строю надязыковую модель (в некотором смысле, хотя такого мало) и (почти) каждый класс кладу в отдельный файл, при этом обхожусь исключительно vim+bash и все прекрасно помню где чего. Что я делаю не так? :)

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

>Автокомплиты для вима, разумеется, есть
Автокомплита мало, я хочу сразу видеть ошибки связанные с типами, например(в случае с java).

Кроме того, в IDEA(и в меньшей степени, в Eclipse) есть режимы для "новичка", которые проверяют массу вещей из разряда best practice. Ну, например, что перед использованием бина в jsp, его надо найти или инстанциировать через useBean и тому подобные штуки.

Также IDE позволяет задать ваши coding standards для всех. И это все будет автоматически поддерживаться. В бытность свою php программистом, я писал(а сам подсмотрел эту практику у других) всякие разные auto-cosmetics scripts и иные проверки coding style, naming convention и т.д., но это все писалось руками. Вопрос: зачем, когда все уже "украдено" до нас.

-~{}~ 16.03.10 20:05:

Автор оригинала: fixxxer
>> Только вы найдите работодателя, который заплатит за этот процесс, пока вы тут себе рабочее место настраиваете :)

ээ

пара pkg_add / apt-get
и
scp -r fixxxer@мой-сервак:.vim* ~/
А. Ну да, значит в вашем случае, он уже заплатил ;-)
Я написал еще пару примеров, которые vim не может решить. Ну то есть написать-то навреное можно, но это уже не тривиально.

p.s. Это не значит, что я не использую bash или vim. Использую. Например, для изменения конфигов на сервере. Для мелких скриптов. Также предпочитаю(пока что-то) использовать git из консоли.
 

fixxxer

К.О.
Партнер клуба
>Отличная практика.

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

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

Sherman

Mephi
2fixxxer
Ну я привел кейзы, которые не решит vim или их решение будет слишком сложно, могу еще привести. Но тем не менее, vim хорошая тулза, но и IDE тоже рулит, в определенных случаях.

По-поводу производительности include в php. Проблема с файлами решается с помощью apc(с отключенным stat) + кэширование классов(читай файлов пачкой) в /dev/shm, например. Но это для application полностью прозрачно. По крайней мере, у нас так было. И все это дело конечно же прекрасно работает через autoload. Но это, кстати, еще один костыль, который приходится решать.
 

fisher

накатила суть
Автор оригинала: Sherman
2fisher
Да ну бросьте спекулировать, в не-java мире же api ничуть не меньше. Они же надязыковые. RPC, например. Или WSDL. Внешние сервисы. OS specific api(в java из почти нет в userland!) Просто одно дело вы переключаетесь из редактора в man, а я могу тот же man почитать и в IDE.
под над-языком (ух ты как получилось, а) - под над-языком (где это вообще?) - под над-языком я имел в виду код свой, мой виртуальный язычок (всё, пора заканчивать)

Автор оригинала: Sherman
Кроме code complete и gui editors я перечислил и еще ряд преймуществ, которые не дает обычный редактор.

При этом я сам пробовал довольно плотно vim, например вместе с php и с++. В конце концов у вас будет своя собственная IDE или даже ОС, внутри vim. Только вы найдите работодателя, который заплатит за этот процесс, пока вы тут себе рабочее место настраиваете :) А с IDE уровня Eclipse или Netbeans я получаю готовое рабочее место, привычное мне за время=равное сборке проекте на целевой машине.

Машинки сейчас мощные, интернеты широкие, не вижу смысла "жить в пещере" :-/
да я просто не считаю, что в пещере. code complete господи - вы что серьезно думаете, что это как-то экономит время? насчет каждый класс в файл - отлично, проблема-то не в этом, а в том, что классов новомит стать слишком много (это часто случается от избыточной фантазии объэктного сознания, которое стремится).

что дает IDE (единственное имхо) - "карту" сущностей проекта. предпочитаю проектировать и писать код так, чтобы карта была ясна интуитивно.

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

Автор оригинала: Sherman
p.s.
Картинка по случаю:
http://www.slideshare.net/arhan/counting-people-by-anton-arhipov Слайд 62
выбираю 59-го.
 
Сверху