avva: (Default)
[personal profile] avva
Джава - это не язык, а тенденция. На любом языке можно писать на Джаве. Можно писать на C++ на Джаве и даже на Питоне на Джаве.

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



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

Date: 2017-09-22 05:17 pm (UTC)
From: [identity profile] http://users.livejournal.com/sorcerer_/
Питон ломает обратную совместимость внутри майнорных версий языка.
Такое говно никакому перлу не снилось.

Date: 2017-09-22 05:34 pm (UTC)
From: [identity profile] redis.livejournal.com
И имеет жесточайшие траблы с кодировками, что в 21-м веке немного недопустимо

Date: 2017-09-22 06:19 pm (UTC)
From: (Anonymous)
Хм. Не замечал никаких таких траблов. Можете показать? Мне надо, серьезно.

Date: 2017-09-22 06:21 pm (UTC)
From: [identity profile] redis.livejournal.com
В двойке кривенькая поддержка юникода, кидает исключения, если строка не юникод, а хотелось юникод. Я мало работал с этим, хватило одного проекта

Date: 2017-09-22 07:20 pm (UTC)
From: [identity profile] dzz.livejournal.com
Ну, батенька, пишите на третьем диалекте - будет вам везде UTF-8 и никаких траблов. В перле, надо полагать, с кодировками всё зашибись :)))

Date: 2017-09-22 07:22 pm (UTC)
From: [identity profile] redis.livejournal.com
В тройке на тот момент не было нужной мне библиотеки.

На Перле писал, но с ним проблем не имел, случайность сработала не в мою пользу именно с Питоном - проект на Питоне оказался именно тем, что на втором Питоне писать не стоило. Разбор и парсинг е-мэйлов, MIME и все такое, с учетом того, что зачастую клиент указывает один encoding, а внутре оно в другом. Это было ужасно :(

Date: 2017-09-22 11:48 pm (UTC)
From: [identity profile] pigmeich.livejournal.com
Ой, китайцы-то как обрадуются!

Date: 2017-09-23 03:40 am (UTC)
From: [identity profile] dzz.livejournal.com
Гхм, CJK в UTF-8, вроде, в полном объёме реализованы, что не так-то?

Date: 2017-09-23 08:37 am (UTC)
From: [identity profile] pigmeich.livejournal.com
Ага, только занимает 8 байт.

Date: 2017-09-23 08:44 am (UTC)
From: [identity profile] dzz.livejournal.com
В основном, три. Там переменная длина.

И, самое главное, где-то это сделано принципиально иначе? В джаве, перле и С++ какой-то другой юникод и UTF-8? :)
Edited Date: 2017-09-23 08:55 am (UTC)

Date: 2017-09-23 09:34 am (UTC)
From: [identity profile] pigmeich.livejournal.com
> В основном, три. Там переменная длина.

Ну мы же про CJK?

> И, самое главное, где-то это сделано принципиально иначе? В джаве, перле и С++ какой-то другой юникод и UTF-8? :)

Смайлик неуместен. В нормальных языках есть выбор в какой кодировке хранить.
Edited Date: 2017-09-23 09:34 am (UTC)

Date: 2017-09-23 09:45 am (UTC)
From: [identity profile] dzz.livejournal.com
Обычно под CJK понимается поддержка символов китайского, японского и корейского языка без конкретизации кодировки. В юникоде есть достаточное для подавляющего большинства применений количество символов, соответствующих этим языкам. Кодировка UTF-8 имеет переменную длину, в которой на JK приходится, в основном, 2 байта, а на C - в основном, три. Что опять не так? :)

> Смайлик неуместен. В нормальных языках есть выбор в какой кодировке хранить.

Ну, пользуйтесь вторым диалектом, если есть желание при вводе-выводе постоянно трахаться с encode/decode, "как в нормальных языках". Разработчики фронтэндов и датабазники вас не поймут.

Date: 2017-09-23 10:45 am (UTC)
From: [identity profile] pigmeich.livejournal.com
> Кодировка UTF-8 имеет переменную длину, в которой на JK приходится, в основном, 2 байта, а на C - в основном, три. Что опять не так? :)

Чё, серьезно? Офигительные открытия в этом журнале.

Date: 2017-09-23 10:56 am (UTC)
From: [identity profile] dzz.livejournal.com
Вся кана и хангыль в UTF-8 укладываются в три байта.

Иероглифы, на вскидку:

http://graphemica.com/%E9%9B%8E - три байта
http://graphemica.com/%E9%9B%8C - три байта

Что я делаю не так?

Edited Date: 2017-09-23 10:56 am (UTC)

Date: 2017-09-23 11:04 am (UTC)
From: [identity profile] pigmeich.livejournal.com
Вы только что утверждали, что японские кодпойнты укладываются в 2 байта (в UTF-8), а теперь в три.

> Что я делаю не так?

Вот это.

Date: 2017-09-23 11:08 am (UTC)
From: [identity profile] dzz.livejournal.com
Ок, mea culpa. Но в три-то укладываются?

> Ага, только занимает 8 байт.

Вот это ваше "8 байт" где?

Date: 2017-09-23 11:28 am (UTC)
From: [identity profile] pigmeich.livejournal.com
> Ок, mea culpa. Но в три-то укладываются?

Одно слово: «кандзи».

> Вот это ваше "8 байт" где?

Редкие иероглифы в комбинациях, может быть и больше.

(no subject)

From: [identity profile] dzz.livejournal.com - Date: 2017-09-23 04:19 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2017-09-23 05:58 pm (UTC) - Expand

Date: 2017-09-23 06:01 pm (UTC)
From: (Anonymous)
Если строка не юникод, а хотелось юникод, то исклюение — совершенно правильная реакция. В чем проблема?

Date: 2017-09-22 05:37 pm (UTC)
From: [identity profile] dzz.livejournal.com
Может, и так, но к стилю программирования это особого отношения не имеет.

Date: 2017-09-23 12:10 am (UTC)
From: [identity profile] repliki.livejournal.com
Ладно бы майнор, они майкро-релизом умудрились сломать весь мир https://bugs.python.org/issue29943

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

Ну баг, ну с кем не бывает. Пофиксили ж.

Date: 2017-09-23 07:40 pm (UTC)
From: (Anonymous)
Ой, да бросьте! Перл создавался/подавался, как язык, который понимает очевидные вещи, которому не надо разжевывать, что имел в виду автор. И вдруг, не так давно, такая элементарная строчка как
split();
вдруг перестает работать. Надо, понимаете ли, писать @_=split(); иначе никак.


Причем для конечного пользователя это выглядит так: однажды сисадмины на серваке апгрэйдят систему, и вдруг все юзерские скрипты вдруг начитают выдавать бред, или в лучшем случае абсолютно невразумительные ошибки... (Конечно, deprecation warning вроде как появилось заранее, но его видно, только если скрипт напрямую гонять, и то не всегда...)

Date: 2017-09-25 08:43 am (UTC)
From: (Anonymous)
> однажды сисадмины на серваке апгрэйдят систему

И на следующий день начинают искать новую работу. Новые сисадмины откатывают все назад и делают как положено, testing-staging-deployment.

Ну ладно, это фантазия. Старые сисадмины все делают как положено. Никто их на первый раз не выгоняет. Только пиздюлей дают немножко, для профилактики.

Date: 2017-09-25 08:12 pm (UTC)
livelight: (hot)
From: [personal profile] livelight
А что они такого сделали? Ну проапгрейдили Перл. Мало ли кто что апгрейдит.
Или вы хотите сказать, что Перл - это инфернальное говно, которое нельзя ставить, а тем более апгрейдить, а любой сисадмин обязан это знать? :)

Date: 2017-09-26 12:50 am (UTC)
From: (Anonymous)
Любой апгрейд чего угодно проходит через тестинг-стейджинг и только после этого попадает в продакшен. Совершенно не нужно знать, шо такоэ за говно этот ваш перл, или наоборот, конфетка. А про тестинг и стейджинг, наоборот, знать обязательно.

January 2026

S M T W T F S
    1 2 3
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 4th, 2026 11:21 am
Powered by Dreamwidth Studios