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 ()
Ответ на: комментарий от KRoN73

>В окне ответа правой кнопкой -> Словари -> Добавить/удалить словари.
Уже проверяет! Наверно в этом сообщении было что-то магическое :)
ps
Странно. На работе не проверяла буквально пару дней назад.

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

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

В плюсах это должно выглядеть примерно как bar(uniq_ptr(foo())), предложенный ранее вариант bar(p=foo()); delete p; не exception-safe и вероятно даже вообще неправильный.

Вообще твой вопрос наводит на интересные размышления. Я бы решал такие проблемы с помощью "дописывания" uniq_ptr компилятором, т.е. такой вот вариант type inference.

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

> Впрочем, за $4000 я подумаю, за $1000 куплю Dual i7 Mac Pro, набью 24Гб памяти, и посчитаю тебе.

А 5000$ тебе хватит чтобы посчитать факториал числа:

10^1000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000 ?

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

> А 5000$ тебе хватит чтобы посчитать факториал числа:

давай мне - я посчитаю

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

>>> Ага, Си++ за неделю :D Доо, Хаскель за 2 недели %)

>> При хорошей подготовке-то? Леххко.

> При любой подготовке. Смишно.

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

То есть освоить то, что реально нужно для программирования на нем.

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

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

З.Ы. за неделю реально освоить только жабу

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

> Не поверю :)

ну и зря - так оно и есть, javac отработало без ошибок и создало файл TestSplit.class, а после твоей строки - та самая ошибка

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

> При наличии теоретической подготовки освоить хаскель за 2 недели реально

Если ты кандидат по теоркату? Может быть. Но, чисто для протокола, - я и в это тоже не верю. За 2 недели можно освоить какое-то подмножество языка, но не весь язык. Можно ли эффективно писать на 2-недельном подмножестве - не знаю.

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

>java -cp . TestSplit

Что-то мне смутно помнится, что -cp был выпилен. Так что java -classpath . TestSplit

Хотя, могу ошибаться.

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

> только после того, как ты мне его посчитаешь на плюсах или другом языке

Я уже посчитал и жду твоего результата.

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

Да. И в man опция присутствует. Так что это я что-то напутал.

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

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

Ну вот на них шесть дней и уйдут. Первый день - это ознакомление с синтаксисом.

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

>А 5000$ тебе хватит чтобы посчитать факториал числа:

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

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

>первый поток будет считать X*(X-1)*(X-2)...*(X/2), а второй (X/2 - 1)*(X/2 - 2)*...*2*1.

>а потом перемножить 2 получившихся числа

Я тут использовал моск и подумал. У меня 4 ядра, в 2 потока на них считать - это неэффективно. А если бы было 4 процессора по 4 ядра? Это ж 16 потоков надо. А как разделить произвольное нечетное число на 16 равных долей? Никак

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

> ну и зря - так оно и есть, javac отработало без ошибок и создало файл TestSplit.class, а после твоей строки - та самая ошибка

Не может быть. Должно работать. Проверьте, всё ли на месте, пересоздайте .class.

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

> Я тут использовал моск и подумал.
> А как разделить произвольное нечетное число на 16 равных долей? Никак


плохо использовал - зачем равных?

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

Обобщить подход на произвольное количество ядер/потоков религия не позволяет?

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

>Ну и хорошо. Языки надо делать. Хорошие языки выживают, а плохие сами отмирают.

История тому свидетель.

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

> Проверьте, всё ли на месте, пересоздайте .class.

удалил .class, делаю:

javac ./TestSplit.java
java -cp . ./TestSplit

ошибка остается

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

> А как разделить произвольное нечетное число на 16 равных долей?

А зачем строго равных-то?

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

Т.е. первая считает 1...N/2, вторая N/2..3/4*N, третья 3/4*N..7/8*N и т.п.

Потому что крупные числа перемножать сложнее.

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

вобщем ладно - по свободе помучаю самостоятельно

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

> Уберите нахрен "./", вам сколько раз сказали уже.

запустил еще раз без "./" - та же ошибка, сколько раз сказал уже

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

java -cp . TestSplit
Exception in thread "main" java.lang.NoClassDefFoundError: TestSplit
Caused by: java.lang.ClassNotFoundException: TestSplit
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

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

попробую скачать с сановского сайта

rainman@rainman-dell-u:~/dev$ javac -version
javac 1.6.0_0
rainman@rainman-dell-u:~/dev$ java -version
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu11)
OpenJDK Client VM (build 14.0-b08, mixed mode, sharing)
yk4ever
()
Ответ на: комментарий от KRoN73

>Я вижу тролля большой толщины под ником «legolegs».

Я не тролль, я правда считаю, что питон должен умереть.

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

> Переносимая жаба такая переносимая...

iReport и Eclipse запускаются, значит я что-то не так делаю( Java я вообще не знаю - только примеры иногда смотрел ), на всякий случай еще раз повторю команды:

rm ./TestSplit.class
javac ./TestSplit.java
java -cp . TestSplit

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

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

Если и считать факториалы на самом языке, то

Вариант А: расширяем существующий класс целых чисел чтобы он мог считать факториалы (правда они и так умеют это), рекурсивно

Integer extend [
    fact [
        | iter |
        iter := [:n :pdt |
                 (n = 0) ifTrue:  [pdt]
                         ifFalse: [iter value: (n - 1) value: (n * pdt)]].
        (self < 0) ifTrue:  [ ^1 ]
                   ifFalse: [ ^(iter value: (self) value: 1)]
    ]
]

Использование:

st> 3 fact
6

Вариант Бэ: делаем блок кода, который считает факториалы, итеративно

[:x | pdt := 1. 1 to: x do: [:i | pdt := pdt * i]. pdt]

Использование:

st> aBlock := тот самый блок
a BlockClosure
st> aBlock value: 3.
6

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

>а код на С и Java выполнялся абсолютно мгновенно :)

А ты знаешь, что читать с HDD процы настольных компов сейчас могут максимум со скоростью 300Мб/сек. А из памяти около 20-23 Гб/сек. А из кэша L3 около 28Гб/с. Вот и считай, что во что упирается

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

Хотя можно поставить PCI-Ex 4x SATA RAID контроллер и набить 8 SATA II винтами, и довести скорость до ~1Гб/сек. Но все равно это в 20 раз медленее памяти

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

> Переносимая жаба такая переносимая...

Переносимая, не волнуйтесь. Вот я ей не пользовался никогда, развернул за две минуты при помощи apt-get, заглянул в чужие примеры, заглянул в документацию, накорябал код - заработало!

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

> Я не тролль, я правда считаю, что питон должен умереть.

Хихи. Почему? Чем он вам мешает?

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

>Доо, Хаскель за 2 недели %)

Если с помощью "мягкого введения в Хаскелль", то наверное это реально?

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

блин, ну скопировать и вставить строки не получается ? нахрена ты перед TestSplit ./ добавл. ппц вощем.

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

> Быстрее на 2,6 секунды

я говорил про общую картину, 1000000000 итераций с вызовом пустого виртуального метода - не показатель для работы реальных программ( т.к. слишком явно ситуация подогнана под бенчмарк ), тот же автор пишет, что оптимизация в c/c++ - это их преимущество над java

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

> Система останавливается и объекты. Всё.

fixed

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

>> Неверно. Просто надо сразу смотреть на несколько языков/платформ с адекватными приложениями оных.

> Да всё равно нормально структурировать код и данные не научишься.

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

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

> Потому что крупные числа перемножать сложнее.

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

(ну там или по модулю 16 если ядер дофига)

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