Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Palych
Уже с Приветом
Posts: 13723
Joined: 16 Jan 2001 10:01

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by Palych »

sp123 wrote: 15 Sep 2021 17:45 Строгая типизация в Java?

double data = 11111111111.00;
int value = (int)data;
System.out.println(value);

Результат: 2147483647

Вот спасибо. Вместо того, чтобы выдать ошибку, эта сволочь тихо генерирует случайное число. И это не считается багом. Типа, читайте документацию. Сам я не джавист ни разу, но подобные приколы иной раз косвенно задевают. Года три назад половину отпуска в Мексике сидел как идиот и переливал огромную hive таблицу из-за того, что в поле bigint кто-то несколько месяцев вставлял данные, которые в исходной базе были double, и всё работало чудесно без ошибок. Пока бизнес не удивился странным результатам. Хадуп-то весь на жабе написан. Повбывав бы.


Sent from my iPhone using Tapatalk Pro
У нас в приложении на плюсах при переходе с linux 2.4 на 2.6 изменялся порядок вызова деструкторов. Причём только на многопроцессорных серверах и только под нагрузкой (иными словами - в продакшн в час пик).
И это тоже не было багом формально, поскольку две переменные оборачивающие указатели были объявлены в неправильном порядке. Но на одном процессоре это долгое время работало.
После этого случая мы начали всё переписывать на Java.
User avatar
Komissar
Уже с Приветом
Posts: 64875
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by Komissar »

sp123 wrote: 15 Sep 2021 17:45 Строгая типизация в Java?

double data = 11111111111.00;
int value = (int)data;
System.out.println(value);

Результат: 2147483647

Вот спасибо. Вместо того, чтобы выдать ошибку, эта сволочь тихо генерирует случайное число. И это не считается багом. Типа, читайте документацию. Сам я не джавист ни разу, но подобные приколы иной раз косвенно задевают. Года три назад половину отпуска в Мексике сидел как идиот и переливал огромную hive таблицу из-за того, что в поле bigint кто-то несколько месяцев вставлял данные, которые в исходной базе были double, и всё работало чудесно без ошибок. Пока бизнес не удивился странным результатам. Хадуп-то весь на жабе написан. Повбывав бы.


Sent from my iPhone using Tapatalk Pro
в вашем коде ошибка, надо использовать не int, а long. int не работает с величинами больше 32768. Это известно и документировано.
User avatar
SVK
Уже с Приветом
Posts: 8255
Joined: 23 Jul 2003 03:53
Location: SPb - KW - NY - CT - MD

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by SVK »

Komissar wrote: 15 Sep 2021 19:49 в вашем коде ошибка, надо использовать не int, а long. int не работает с величинами больше 32768. Это известно и документировано.
Много чего есть задокументированного. Только это не мешает приумножению количества ошибок во вновь создаваемом коде, с наиновейшими технологиями. В геометрической прогрессии примерно. :pain1:
А еще больше есть - незадокументированного... :umnik1:
LG - Life's good.
But good life is much better.
OtherSide
Уже с Приветом
Posts: 15812
Joined: 01 Mar 2008 15:14
Been thanked: 1 time

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by OtherSide »

Flash-04 wrote: 15 Sep 2021 19:07
OtherSide wrote: 15 Sep 2021 16:59 Популярен это по своей воле, а JS скорее вынуждены использовать. Ну типа как в армии популярна перловая каша
в браузерах было:
- JS
- Java
- SilverLight
- Adobe Flash

Остался JS. Остальное вымерло само как мамонты. Значит JS таки удобнее
Не потому что удобнее, а потому что это внешний относительно браузера плагины да плюс к тому еще и проприетарные, которые невозможно контролировать сообществом.

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

Щаз вроде появился еще WebAssembly кооторый по идее может подвинуть JS так что посмотрим
sp123
Уже с Приветом
Posts: 1962
Joined: 24 Feb 2001 10:01
Location: Челябинск -> Everett, WA

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by sp123 »

Komissar wrote: в вашем коде ошибка, надо использовать не int, а long. int не работает с величинами больше 32768. Это известно и документировано.
Именно. Ошибка в коде или ошибка в данных. Мало ли, вначале циферки приходили маленькие, потом увеличились через десять лет, а девелопер уволился пять лет назад. Попытка впихнуть невпихуемое в любой базе данных выбросит ошибку. А тут просто курочит данные. Тому, кто такое придумал, надо в голову гвоздь забить. Добрый я сегодня что-то Image


Sent from my iPhone using Tapatalk Pro
KinDzaDza
Уже с Приветом
Posts: 2273
Joined: 29 Jul 2005 17:39
Location: Калифорнийский Мухосранск

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by KinDzaDza »

sp123 wrote: 15 Sep 2021 17:45 Строгая типизация в Java?

double data = 11111111111.00;
int value = (int)data;
System.out.println(value);

Результат: 2147483647

Вот спасибо. Вместо того, чтобы выдать ошибку, эта сволочь тихо генерирует случайное число. И это не считается багом. Типа, читайте документацию. Сам я не джавист ни разу, но подобные приколы иной раз косвенно задевают. Года три назад половину отпуска в Мексике сидел как идиот и переливал огромную hive таблицу из-за того, что в поле bigint кто-то несколько месяцев вставлял данные, которые в исходной базе были double, и всё работало чудесно без ошибок. Пока бизнес не удивился странным результатам. Хадуп-то весь на жабе написан. Повбывав бы.


Sent from my iPhone using Tapatalk Pro
Я конечно же понимаю и разделяю Ваше негодование, но в приведённом коде программист сам себе злобный Буратино.
Там же явное приведение типов double к int. То, что программист не в курсе, что в Java тип int занимает 32 бита один из которых знаковый - это скорее проблемы погромиста. Там в Вашем примере на выходе не случайное число а 2^31, это максимум что может вместить int в Java. Там целая процедура конвертации примитивных типов написана и в документации описано что и почему там получается. В С/С++ все точно также бы переполнилось при явном приведении типов без метания всяких исключений.
Не зря же компилятор настойчиво предупреждает о возможном переполнении если присваивать без явного приведения типов. Ну а если погромист настаивает, то кто ж ему перечить-то станет?
sp123
Уже с Приветом
Posts: 1962
Joined: 24 Feb 2001 10:01
Location: Челябинск -> Everett, WA

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by sp123 »

Хе хе. На самом деле там был insert into table … select …, который и ломал дату. То есть неприятные буратины - это те ребята, что написали утилиту hive на жабе. А страдают наивные датабазники, которые привыкли к хорошему. Тут я готов согласится, сама по себе жаба ни при чём.


Sent from my iPhone using Tapatalk Pro
User avatar
Uzito
Уже с Приветом
Posts: 8239
Joined: 06 Feb 2002 10:01
Location: NJ, USA

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by Uzito »

sp123 wrote: 15 Sep 2021 17:45 double data = 11111111111.00;
int value = (int)data;
System.out.println(value);
Результат: 2147483647
Вот спасибо. Вместо того, чтобы выдать ошибку, эта сволочь тихо генерирует случайное число. И это не считается багом.
Позор на программистские седины. Во-первых не случайное число, а максимальное значение для 32-bit signed integer. Во-вторых, в этот signed integer пытаешься засунуть число в пять раз большее, ну вот и получаешь что влезло.
Komissar wrote: 15 Sep 2021 19:49 в вашем коде ошибка, надо использовать не int, а long. int не работает с величинами больше 32768. Это известно и документировано.
Тоже позор на седую голову.
User avatar
Komissar
Уже с Приветом
Posts: 64875
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by Komissar »

Uzito wrote: 16 Sep 2021 03:45
Komissar wrote: 15 Sep 2021 19:49 в вашем коде ошибка, надо использовать не int, а long. int не работает с величинами больше 32768. Это известно и документировано.
Тоже позор на седую голову.
Когда я изучал джаву, в периодической системе было всего 4 элемента!
Palych
Уже с Приветом
Posts: 13723
Joined: 16 Jan 2001 10:01

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by Palych »

OtherSide wrote: 15 Sep 2021 20:21 Не потому что удобнее, а потому что это внешний относительно браузера плагины да плюс к тому еще и проприетарные, которые невозможно контролировать сообществом.

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

Щаз вроде появился еще WebAssembly кооторый по идее может подвинуть JS так что посмотрим
Кстати, WebAssembly видит DOM?
User avatar
Komissar
Уже с Приветом
Posts: 64875
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by Komissar »

Uzito wrote: 16 Sep 2021 03:45
Komissar wrote: 15 Sep 2021 19:49 в вашем коде ошибка, надо использовать не int, а long. int не работает с величинами больше 32768. Это известно и документировано.
Тоже позор на седую голову.
справедливости ради, именно этот предел был у джавы до 8й версии, так мне гугол сказал!
User avatar
Komissar
Уже с Приветом
Posts: 64875
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by Komissar »

Palych wrote: 16 Sep 2021 04:06
OtherSide wrote: 15 Sep 2021 20:21 Не потому что удобнее, а потому что это внешний относительно браузера плагины да плюс к тому еще и проприетарные, которые невозможно контролировать сообществом.

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

Щаз вроде появился еще WebAssembly кооторый по идее может подвинуть JS так что посмотрим
Кстати, WebAssembly видит DOM?
силверлайт и флеш вроде видели, и как это им помогло?
Palych
Уже с Приветом
Posts: 13723
Joined: 16 Jan 2001 10:01

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by Palych »

Komissar wrote: 16 Sep 2021 05:12
Palych wrote: 16 Sep 2021 04:06
OtherSide wrote: 15 Sep 2021 20:21 Не потому что удобнее, а потому что это внешний относительно браузера плагины да плюс к тому еще и проприетарные, которые невозможно контролировать сообществом.

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

Щаз вроде появился еще WebAssembly кооторый по идее может подвинуть JS так что посмотрим
Кстати, WebAssembly видит DOM?
силверлайт и флеш вроде видели, и как это им помогло?
Я не уверен что видели. Прошу высказаться специалистов.
User avatar
Komissar
Уже с Приветом
Posts: 64875
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by Komissar »

silverlight вроде кое-что видел (не уверен, если то был полный дом или отдельные кусочки):
https://docs.microsoft.com/en-us/archiv ... verlight-2
User avatar
Komissar
Уже с Приветом
Posts: 64875
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Зачем появляются новые языки программирования? Сколько их и каких на самом деле нужно?

Post by Komissar »

у флеша тоже вроде что-то было:
https://help.adobe.com/en_US/as3/dev/WS ... -7e54.html

но возможно, не поспевало за возможностями браузеров

Return to “Вопросы и новости IT”