LINUX.ORG.RU

Google разрабатывает язык Noop для замены Java

 ,


1

0

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

Noop говорит ДА:

  • Внедрению зависимостей в языке
  • Тестируем ост
  • Неизменяемости
  • Синтаксису направленному на улучшение читабельности кода
  • Никогда не устаревающей документации
  • Свойствам, сильной типизации и разумной современной библиотеке

Noop говорит НЕТ:

  • Любой статике
  • Наследованию (subclassing)
  • Примитивам
  • Ненужным шаблонам

Исходные коды доступны под Apache Licence 2.0

>>> Google urges developers to get in loop with Noop

★★☆☆

Проверено: Shaman007 ()
Ответ на: комментарий от anonymous

> Вот ты очевидно и не научился, быдлокодер. Поетому без GC (Govno Collector) тебе в программировании делать нечего.

Онанизмусы бурлят на доступном им уровне.

Кстати, зачем их вернули? Так без них хорошо было.

yk4ever
()
Ответ на: комментарий от yk4ever

> Кстати, зачем их вернули? Так без них хорошо было.

хорошо и тихо ;)

lester ★★★★
()
Ответ на: комментарий от anonymous

> почему бы не считать, например, одним потоком четные, другим -- нечетные?

Хм. Тоже верно. Но тогда сложнее переконфигурировать кластер на ходу :]

yk4ever
()
Ответ на: комментарий от Devix

>> Ну дал ты реализацию на питоне, а на жабе?

>Для каждой задачи свой язык :))))))

Тогда уж, давай вспомним где обычно используется факториал. Правильно, в численный вычислениях. И если предполагается, что использовать функцию будут хоть сколько-нибудь интенсивно, то питоновский код выкидывается, а на его место приходит, что-то вроде следующего сишного кода (автоматически сгенеренного с помощью того же питона)

double factorial_value[301]={1.,1.,2., <и т.д.> };

Значения получают просто factorial_value[n], без проверки аргумента, заранее строя код, чтобы аргумент не выходил за рамки.

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

ogronom
()
Ответ на: комментарий от kto_tama

> жаба-кодеры себя в обиду не дадут

Что наиболее интересно, я ни разу не жабокодер и вообще жаба мне не нравится :]

yk4ever
()
Ответ на: комментарий от ogronom

> автоматически сгенеренного с помощью того же питона

Да вы что! Ну как можно делать одноразовое вычисление трёхсот чисел последовательным перемножением в Питоне! Он же МЕДЛЕННЫЙ! :D

yk4ever
()
Ответ на: комментарий от yk4ever

>Раньше солнце потухнет, чем вы цикл докрутите.

Главное, что когда-нибудь обязательно досчитается. А то, что мы до этого не доживем, не важно. Главное $4000.

Ведь на вывод банковской системы из кризиса (в трубу) медвепут выделяет сотни миллиардов руб., и ничего

Karapuz ★★★★★
()
Ответ на: комментарий от ogronom

> а на его место приходит, что-то вроде следующего сишного кода

абсолютно верно, только в данном случае лучше таки массив проинициализировать не руками, а в цикле при первом к нему обращении - т.к. factorial_value[301] будет очееень большим :)

lester ★★★★
()
Ответ на: комментарий от anonymous

> Что, правда глаза режет?

[зевая] на самом деле, эпический баттхёрт в этой теме поимели красноглазые плюсовики. Они-то всю жизнь надрачивались микрооптимизировать, вручную манажить память, в голове подсчитывать количество ссылок, для heap-объектов мастерить якоря в стеке, зубрить различия между ссылками и указателями, скурпулёзно прописывать интерфейс в хедер-файлах, колдовать над ифдефами и мэйкфайлами - а тут приходим мы и говорим, что без всего этого в прикладном программировании легко можно обойтись.

Кошмар! Мир рушится! Луддиты понимают, что машины их скоро заменят. Но кувалдов у них нет (здоровье подорвано годами изучения крестовых заморочек), поэтому могут только говном кидаться. Правда обычно мимо, так как знание матчасти из рук вон.

yk4ever
()
Ответ на: комментарий от Karapuz

> Ведь на вывод банковской системы из кризиса (в трубу) медвепут выделяет сотни миллиардов руб., и ничего

Деньги из трубы приходят, в трубу уходят. Цикл жизни.

yk4ever
()
Ответ на: комментарий от lester

> а в цикле при первом к нему обращении - т.к. factorial_value[301] будет очееень большим :)

И чо? Ну укажете константу в научной записи, какая разница :]

А если в длинной арифметике считать, то тем более лучше подсчитать заранее и заинклюдить массив конструкторов ДА-объектов. Ибо долго.

yk4ever
()
Ответ на: комментарий от yk4ever

>> а тут приходим мы и говорим, что без всего этого в прикладном программировании легко можно обойтись.

Можно обойтись. И получится тормозная жаба. Которая, как уже писали в топике, если повезёт - работает как Си, а если не повезёт - минимум в 2 раза медленнее. Или вот представь Counter-Strike на жабе. Выбегаешь из-за угла, а там оппоненты. Тут срабатывает GC, ты лагаешь, пролагал - труп.

anonymous
()
Ответ на: комментарий от yk4ever

> А если в длинной арифметике считать, то тем более лучше подсчитать заранее и заинклюдить массив конструкторов ДА-объектов. Ибо долго.

300! долго? не смешите

lester ★★★★
()
Ответ на: комментарий от Qasta

> Так тебе же не про копирование файла говорят, а про анализ текста при помощи регулярных выражений.

вот все что ты написал про скорость, которую якобы измерял: "Скорость анализа упиралась только в производительность НЖМД."

lester ★★★★
()
Ответ на: комментарий от anonymous

Все плюсы жабы надуманны и при желании их можно прикрутить к C++. А вот у жабы отпилить некоторые ненужные вещи нельзя. А помимо этого жаба жутко тормозная.

anonymous
()
Ответ на: комментарий от lester

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

Qasta
()
Ответ на: комментарий от yk4ever

>Да вы что! Ну как можно делать одноразовое вычисление трёхсот чисел последовательным перемножением в Питоне! Он же МЕДЛЕННЫЙ! :D

Так это в compile-time. Такое плюсеров не напрягает.

legolegs ★★★★★
()
Ответ на: комментарий от Qasta

> Ну ты же хотел знать, как быстро можно засплитить мегабайтную строку. Вот тебе пример, что на джаве и сплитится, и парсится всё очень быстро.

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

lester ★★★★
()
Ответ на: комментарий от anonymous

> Которая, как уже писали в топике, если повезёт - работает как Си, а если не повезёт - минимум в 2 раза медленнее.

В два раза медленнее - это ПРОСТО УЖАСНО. Это, блин, прям как компьютер ПОЛУТОРАГОДИЧНОЙ давности. Как на этом вообще можно работать?!!!

> Или вот представь Counter-Strike на жабе. Выбегаешь из-за угла, а там оппоненты. Тут срабатывает GC, ты лагаешь, пролагал - труп.

Чёрт побери! Меня шмальнули в контр-страйке! МОЙ МИР РУХНУЛ!!!

(подсказка - генерационный GC отрабатывает за доли миллисекунды и лага не даст)

yk4ever
()
Ответ на: комментарий от anonymous

> вот представь Counter-Strike на жабе. Выбегаешь из-за угла, а там оппоненты. Тут срабатывает GC, ты лагаешь, пролагал - труп.

В Яве давно уже есть сборщик мусора, который останавливает систему не более, чем на какое-то фиксированное время (порядка пары миллисекунд, IIRC).

tailgunner ★★★★★
()
Ответ на: комментарий от lester

> 300! долго? не смешите

Тьфу, затупил. И впрямь. 0.000845193862915 секунд на питоне

yk4ever
()
Ответ на: комментарий от anonymous

> Все плюсы жабы надуманны и при желании их можно прикрутить к C++.

Если бы у бабушки был бы х*й....

> А помимо этого жаба жутко тормозная.

Поэтому надо писать на окамле :]

yk4ever
()
Ответ на: комментарий от yk4ever

> В два раза медленнее - это ПРОСТО УЖАСНО. Это, блин, прям как компьютер ПОЛУТОРАГОДИЧНОЙ давности. Как на этом вообще можно работать?!!!

Полуторагодичной? Откуда дровишки?

anonymous
()
Ответ на: комментарий от legolegs

> Так это в compile-time. Такое плюсеров не напрягает.

Плюсеров напрягает ВСЁ, что не на плюсах. Потому что они не за скорость программ борются, нет. Они хотят оправдать свои огромные объёмы траха в своих же глазах.

yk4ever
()
Ответ на: комментарий от lester

> перечитай топик, чтоб понять кого что напрягает ;)

Крестофилов зато ничего не напрягает: 10 лет усердно ждали 0x, а туда почти ничего и не вошло ;)

mv ★★★★★
()
Ответ на: комментарий от lester

Что интересно, плюсофобы дни напролёт могут рассказывать, что плюсы страшные, ужасные и не быстрые. Но единицы из них упоминают то, что действительно мешает программистам на c++.

legolegs ★★★★★
()
Ответ на: комментарий от mv

> Крестофилов зато ничего не напрягает: 10 лет усердно ждали 0x, а туда почти ничего и не вошло ;)

мне вас жаль огорчать - но многое из 0х уже и реализовано в vc и gcc

lester ★★★★
()
Ответ на: комментарий от ogronom

> Тогда уж, давай вспомним где обычно используется факториал. Правильно, в численный вычислениях.

численные вычисления разные бывают. Если речь идет о какой-нибудь комбинаторике, например, то приближенное значение не катит совершенно, а только целые числа (и рациональные дроби).

Или например попробуйте разложить (n! + 1) на простые множители. С double факториалом.

anonymous
()
Ответ на: комментарий от lester

> мне вас жаль огорчать - но многое из 0х уже и реализовано в vc и gcc

Если бы МакКарти знал, чего *у меня* в sbcl.core наворочено - спать бы начал беспокойно.

mv ★★★★★
()
Ответ на: комментарий от tailgunner

>Жабафаны опять не посчитали время старта JVM?

1. Там, как бы, учитывается суммарное время теста.

2. А где, кроме редко запускаемого десктопного софта важно время старта?

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

> И что такого "увышного"? Жабафаны опять не посчитали время старта JVM?

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

mv ★★★★★
()
Ответ на: комментарий от mv

> чего *у меня* в sbcl.core наворочено - спать бы начал беспокойно.

где ж вы все, лисперы, где же ваши супер навороченные программы, почему нам приходится пользоваться поделиями на питоне, С, С++ и т.д.?

lester ★★★★
()
Ответ на: комментарий от KRoN73

> А где, кроме редко запускаемого десктопного софта важно время старта?

в любом консольном приложении, которое вызывается в скриптах или по крону?

lester ★★★★
()
Ответ на: комментарий от lester

> где ж вы все, лисперы, где же ваши супер навороченные программы, почему нам приходится пользоваться поделиями на питоне, С, С++ и т.д.?

Мы все работаем на NASA, DARPA или Airbus. Нам нельзя свой гениальный софт показывать.

mv ★★★★★
()
Ответ на: комментарий от lester

> т.е. сообществу вы ничего не даете?

Даём. Заинтересовавшихся потом вербует агентура, а в случае отказа - устраняет. Этим и объясняется, что на публике лиспового кода очень мало, весь он эзотерический, не похожий на так всем нужные куте и буст, а самих лисперов почти не видно.

mv ★★★★★
()
Ответ на: комментарий от yk4ever

> man закон Мура.

Закон Мура описывает количество транзисторов, а не быстродействие. Впрочем, для человека, который за неделю осваивает C++, а за две Haskell, это так -- мелкая неувязочка.

eao197 ★★★★★
()
Ответ на: комментарий от Karapuz

>Первая задачка — по легенде задавалась в майкрософте на собеседовании

наверное там требовали найти быстрейшее решение.

Для второго у меня получилось как-то так:

разбиваем на пары (1,2)(3,4)... их N/2 (+-1)

время чтобы они перешили t = 2 + 4 + ... + N. вроде сумма прогрессии: = (2 + N)/2 * N/2 = (2N + N^2)/4

ну и лампу носить + возвращаться обратно самому быстрому, т.е ещё добавить к предыдущему 2*N/2 = N

короче n^2.

anonymous
()
Ответ на: комментарий от lester

в любом консольном приложении, которое вызывается в скриптах или по крону?

$ sudo bash -c 'sync && echo 3 > /proc/sys/vm/drop_caches'
$ time java Hello
Hello world!

real	0m1.349s
user	0m0.045s
sys	0m0.043s

$ time java Hello
Hello world!

real	0m0.114s
user	0m0.048s
sys	0m0.024s

$ time java Hello
Hello world!

real	0m0.118s
user	0m0.056s
sys	0m0.017s

Всё же не так много областей, где эти цифры будут восприниматься чудовищно тормозными. Там - да, Си++ зарулит:

$ sudo bash -c 'sync && echo 3 > /proc/sys/vm/drop_caches'
balancer@home ~/work/programming/c++ $ time ./a.out 
Hello world!

real	0m0.378s
user	0m0.001s
sys	0m0.003s

$ time ./a.out 
Hello world!

real	0m0.002s
user	0m0.000s
sys	0m0.002s

$ time ./a.out 
Hello world!

real	0m0.002s
user	0m0.002s
sys	0m0.000s

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>> Жабафаны опять не посчитали время старта JVM?

> 1. Там, как бы, учитывается суммарное время теста.

судя по steady state, это не так.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.