avva: (Default)
avva ([personal profile] avva) wrote2017-09-22 04:41 pm

о джаве

Джава - это не язык, а тенденция. На любом языке можно писать на Джаве. Можно писать на C++ на Джаве и даже на Питоне на Джаве.

Вот так, например, пишут на Джаваскрипте на Джаве. Это из библиотеки Closure Library, одно время главного фреймворка, в котором писали на джаваскрипте в Гугле (сейчас выбор намного больше: есть Angular, Polymer, используют и другие библиотеки, не написанные в Гугле).



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

[identity profile] dzz.livejournal.com 2017-09-22 02:11 pm (UTC)(link)
Напомнило "На любом языке можно писать на perl-е. Кроме python-а" ;)

[identity profile] salas.livejournal.com 2017-09-22 02:55 pm (UTC)(link)
Есть боянистая дискуссия, являются ли Python, JS и другие языки приемлемыми лиспами. А вот как бы определить, что такое приемлемый перл?

(no subject)

[identity profile] dzz.livejournal.com - 2017-09-22 16:51 (UTC) - Expand

[identity profile] ospf-ripe.livejournal.com 2017-09-22 04:29 pm (UTC)(link)
Я видел красивый код на Perl, и видел нечитаемое месиво на Python-е. Плохой код можно написать на любом языке и Python тут не исключение. В Python-e это еще отягощается отсутствием скобок - в коде отступом в 2 пробела и несколькими уровнями вложенности плохо видно границы блоков. Много уровней вложенности и циклы на страницу и больше это плохой стиль в любом языке, но в Python это выглядит особенно плохо.

(no subject)

[identity profile] dzz.livejournal.com - 2017-09-22 16:49 (UTC) - Expand

(no subject)

[identity profile] redis.livejournal.com - 2017-09-22 17:34 (UTC) - Expand

(no subject)

(Anonymous) - 2017-09-22 18:19 (UTC) - Expand

(no subject)

[identity profile] redis.livejournal.com - 2017-09-22 18:21 (UTC) - Expand

(no subject)

[identity profile] dzz.livejournal.com - 2017-09-22 19:20 (UTC) - Expand

(no subject)

[identity profile] redis.livejournal.com - 2017-09-22 19:22 (UTC) - Expand

(no subject)

[identity profile] pigmeich.livejournal.com - 2017-09-22 23:48 (UTC) - Expand

(no subject)

[identity profile] dzz.livejournal.com - 2017-09-23 03:40 (UTC) - Expand

(no subject)

[identity profile] pigmeich.livejournal.com - 2017-09-23 08:37 (UTC) - Expand

(no subject)

[identity profile] dzz.livejournal.com - 2017-09-23 08:44 (UTC) - Expand

(no subject)

[identity profile] pigmeich.livejournal.com - 2017-09-23 09:34 (UTC) - Expand

(no subject)

[identity profile] dzz.livejournal.com - 2017-09-23 09:45 (UTC) - Expand

(no subject)

[identity profile] pigmeich.livejournal.com - 2017-09-23 10:45 (UTC) - Expand

(no subject)

[identity profile] dzz.livejournal.com - 2017-09-23 10:56 (UTC) - Expand

(no subject)

[identity profile] pigmeich.livejournal.com - 2017-09-23 11:04 (UTC) - Expand

(no subject)

[identity profile] dzz.livejournal.com - 2017-09-23 11:08 (UTC) - Expand

(no subject)

[identity profile] pigmeich.livejournal.com - 2017-09-23 11:28 (UTC) - Expand

(no subject)

[identity profile] dzz.livejournal.com - 2017-09-23 16:19 (UTC) - Expand

(no subject)

(Anonymous) - 2017-09-23 17:58 (UTC) - Expand

(no subject)

(Anonymous) - 2017-09-23 18:01 (UTC) - Expand

(no subject)

[identity profile] dzz.livejournal.com - 2017-09-22 17:37 (UTC) - Expand

(no subject)

[identity profile] repliki.livejournal.com - 2017-09-23 00:10 (UTC) - Expand

(no subject)

[identity profile] nefedor.livejournal.com - 2017-09-23 03:03 (UTC) - Expand

(no subject)

(Anonymous) - 2017-09-23 19:40 (UTC) - Expand

(no subject)

(Anonymous) - 2017-09-25 08:43 (UTC) - Expand

(no subject)

[personal profile] livelight - 2017-09-25 20:12 (UTC) - Expand

(no subject)

(Anonymous) - 2017-09-26 00:50 (UTC) - Expand

[identity profile] sergushenkov.livejournal.com 2017-09-22 02:11 pm (UTC)(link)
Ни Джавы, ни джаваскрипт не знаю - поэтому не оценить пример по достоинству. На Джава-Питоне случайно нет образца? :)

[identity profile] rinnve.livejournal.com 2017-09-22 03:03 pm (UTC)(link)
Примеров сходу не приходит в голову, но вот хорошая статья для (бывших) джавистов про то, как не тащить джавистские привычки в Питон: http://dirtsimple.org/2004/12/python-is-not-java.html

[identity profile] dims12.livejournal.com 2017-09-22 03:17 pm (UTC)(link)
Надо реюзать свои навыки. Если Питон съедает Джавистские штучки, то надо этим пользоваться.

[identity profile] dims12.livejournal.com 2017-09-22 03:17 pm (UTC)(link)
И вообще. Я на всех языках думаю на С++ :)

(no subject)

[identity profile] redis.livejournal.com - 2017-09-22 16:40 (UTC) - Expand

(no subject)

[personal profile] livelight - 2017-09-22 20:12 (UTC) - Expand

(no subject)

[identity profile] redis.livejournal.com - 2017-09-23 06:44 (UTC) - Expand

[identity profile] dims12.livejournal.com 2017-09-22 02:13 pm (UTC)(link)
Ниче не понял. А как надо не на Джаве?

[identity profile] unibasil.livejournal.com 2017-09-22 02:33 pm (UTC)(link)
Без Джавы. Даже если на Джаве.

P.S. Действительно, более удручающего зрелища, когда JS пишут в Java-style, представить трудно.

(no subject)

[identity profile] dims12.livejournal.com - 2017-09-22 14:36 (UTC) - Expand

(no subject)

[identity profile] unibasil.livejournal.com - 2017-09-22 15:10 (UTC) - Expand

(no subject)

[identity profile] dims12.livejournal.com - 2017-09-22 15:12 (UTC) - Expand

(no subject)

[identity profile] unibasil.livejournal.com - 2017-09-22 15:29 (UTC) - Expand

(no subject)

(Anonymous) - 2017-09-23 20:21 (UTC) - Expand

(no subject)

(Anonymous) - 2017-09-24 16:43 (UTC) - Expand

(no subject)

[identity profile] unibasil.livejournal.com - 2017-09-25 05:41 (UTC) - Expand

(no subject)

(Anonymous) - 2017-09-25 06:19 (UTC) - Expand

(no subject)

[personal profile] livelight - 2017-09-22 20:25 (UTC) - Expand

(no subject)

[identity profile] boffin.livejournal.com - 2017-09-23 08:59 (UTC) - Expand

[identity profile] erendir.livejournal.com 2017-09-22 02:38 pm (UTC)(link)
а можно для далёкого от Джавы и Джаваскрипта программиста пояснить, что в приведенном кусочке не так?

[identity profile] unibasil.livejournal.com 2017-09-22 03:12 pm (UTC)(link)
Всё так. Но так писать не надо. Это всё-таки язык программирования, а не юриспруденции, где нужно простейшие вещи обязательно описывать в виде "верёвка есть вервие простое".

(no subject)

[identity profile] erendir.livejournal.com - 2017-09-22 16:39 (UTC) - Expand

[identity profile] dims12.livejournal.com 2017-09-22 03:21 pm (UTC)(link)
Мне кажется, либо этот код сгенерирован автоматическим генератором, либо за ним стоит какая-то идея, которую мы не знаем.

Никакой связи этого кода с Джавой я не вижу.

В Джаве точно так же, как и в Джаваскрипте, можно присваивать "голые" строки и почему автор этого не сделал -- неведомо. Во всяком случае не по причине того, что он привык к Джаве.

[identity profile] pigmeich.livejournal.com 2017-09-22 02:43 pm (UTC)(link)
Что самое интересное, компилятор регулярно давится (но прожёвывает) такие экзерсисы.

[identity profile] dims12.livejournal.com 2017-09-22 03:23 pm (UTC)(link)
С каких пор у Джаваскрипта появился компилятор? Или имеется в виду JIT?

(no subject)

[identity profile] pigmeich.livejournal.com - 2017-09-22 18:46 (UTC) - Expand

[identity profile] dims12.livejournal.com 2017-09-22 03:10 pm (UTC)(link)
На Джаве было бы так:

package goog.dom;

public enum TagName {
    I ("I"),
    IFRAME("IFRAME"),
    IMG("IMGE);

    private final String tagName; 

    TagName(String tagName) {
        this.tagName = tagName;
    }
}

Edited 2017-09-22 15:10 (UTC)

[identity profile] earlesspierre.livejournal.com 2017-09-22 03:43 pm (UTC)(link)
Ни одной factory, ни одного singleton, это недоразумение, а не джава! Настоящая джава делается вот так (https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/aop/config/SimpleBeanFactoryAwareAspectInstanceFactory.html)

[identity profile] vmenshov.livejournal.com 2017-09-22 04:13 pm (UTC)(link)
Писать надо на С#. Он офигителен.

[identity profile] redis.livejournal.com 2017-09-22 04:39 pm (UTC)(link)
Точно! Принципиально отличается от Джавы - ведь в C# скобочку принято ставить в новой строке

(no subject)

[identity profile] vmenshov.livejournal.com - 2017-09-22 17:21 (UTC) - Expand

(no subject)

[identity profile] redis.livejournal.com - 2017-09-22 17:23 (UTC) - Expand

(no subject)

[identity profile] vmenshov.livejournal.com - 2017-09-22 17:27 (UTC) - Expand

(no subject)

[identity profile] redis.livejournal.com - 2017-09-22 17:29 (UTC) - Expand

(no subject)

[identity profile] vmenshov.livejournal.com - 2017-09-22 17:31 (UTC) - Expand

(no subject)

[identity profile] redis.livejournal.com - 2017-09-22 17:31 (UTC) - Expand

(no subject)

[identity profile] vmenshov.livejournal.com - 2017-09-22 17:32 (UTC) - Expand

(no subject)

[identity profile] pigmeich.livejournal.com - 2017-09-22 21:04 (UTC) - Expand

(no subject)

[identity profile] vmenshov.livejournal.com - 2017-09-22 21:19 (UTC) - Expand

(no subject)

[identity profile] pigmeich.livejournal.com - 2017-09-22 21:30 (UTC) - Expand

(no subject)

[identity profile] vmenshov.livejournal.com - 2017-09-22 21:47 (UTC) - Expand

(no subject)

[identity profile] pigmeich.livejournal.com - 2017-09-22 22:16 (UTC) - Expand

(no subject)

[identity profile] occam-aga.livejournal.com - 2017-09-23 00:45 (UTC) - Expand

(no subject)

[identity profile] ak-47.livejournal.com - 2017-09-23 02:25 (UTC) - Expand

[identity profile] sovkista.livejournal.com 2017-09-22 06:35 pm (UTC)(link)
Надо же. Это же Вы написали стремительного бота для жеже в начале 14 года? У Тёмы был какой-то конкурс... Кто больше наспамит в его журнал...

Я тогда ещё у Вас поинтересовался, была ли это связка Руби+Вотир или Питон+Скрэпи... До сих пор помню Ваш ответ про Сисярп...

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

Ещё F# хорошо пошёл.

(no subject)

[identity profile] vmenshov.livejournal.com - 2017-09-22 18:38 (UTC) - Expand

(no subject)

[identity profile] sovkista.livejournal.com - 2017-09-22 18:47 (UTC) - Expand

(no subject)

[identity profile] vmenshov.livejournal.com - 2017-09-22 19:08 (UTC) - Expand

(no subject)

[identity profile] sovkista.livejournal.com - 2017-09-22 20:33 (UTC) - Expand

(no subject)

[identity profile] sovkista.livejournal.com - 2017-09-22 20:37 (UTC) - Expand

[identity profile] cryinstone.livejournal.com 2017-09-23 01:52 am (UTC)(link)
Java печально известна - как же это будет по-русски - verbosity... Длинными именами, фрамеворками.

С# / .NET чуть-чуть лучше, но его придумали в Майкрософте и используют в той же энтерпрайзовской нише, где пишут громоздкий, тяжелый код.

Если вы занимаетесь ДотНетом - F# - это самый элегантный язык. Но из-за консервативности корпоративной ниши и из-за крайнего нежелания 99% корпоративных программистов учиться новому он не получил должного распространения.

[identity profile] avnik.livejournal.com 2017-09-22 05:44 pm (UTC)(link)
ну при желании можно и на хаскеле писать на фортране.

[identity profile] dmarck.livejournal.com 2017-09-22 06:48 pm (UTC)(link)
!!!!!

(Anonymous) 2017-09-22 06:14 pm (UTC)(link)
Ну попробуйте пописать на Хаскеле на Джаве.

Ну и как бонус, попробуйте пописать на Джаве на Хаскеле.
migmit: (Default)

[personal profile] migmit (from livejournal.com) 2017-09-22 06:45 pm (UTC)(link)
i :: goog.dom.TagName = goog.dom.TagName("I")
iframe :: goog.dom.TagName = goog.dom.TagName("IFRAME")
img :: goog.dom.TagName = goog.dom.TagName("IMG")

Вот в обратную сторону — да, посложнее. Но можно.

(no subject)

(Anonymous) - 2017-09-22 20:47 (UTC) - Expand

(no subject)

[personal profile] migmit - 2017-09-22 20:49 (UTC) - Expand

[identity profile] redis.livejournal.com 2017-09-22 07:26 pm (UTC)(link)
Кстати, классика:

Image

(Anonymous) 2017-09-22 08:58 pm (UTC)(link)
Лихо.

(no subject)

[identity profile] pigmeich.livejournal.com - 2017-09-22 21:01 (UTC) - Expand

(no subject)

[identity profile] Илья Цыгвинцев - 2017-09-22 22:12 (UTC) - Expand

(no subject)

(Anonymous) - 2017-09-22 22:45 (UTC) - Expand

(no subject)

[identity profile] Илья Цыгвинцев - 2017-09-23 16:38 (UTC) - Expand

[identity profile] caztd.livejournal.com 2017-09-22 08:58 pm (UTC)(link)
Приходится много работать с C++ кодом написанным на жабе.
После этого я начал реально ценить хороший C++ код.
Насколько он все же более прост для понимания.
OOP (в стиле жабы) это все же зло.