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 ()

Google лезет всюду, где только можно. Того и гляди, откроют сеть ресторанов быстрого питания!

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

Да, жаба не тормозит... но только в блогах. И в параллельных вселенных. А так у С++ по скорости сосёт с заглотом.

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

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

Браво. То есть утечки памяти неизбежны, даже когда руки на месте %)

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

> нахрена нужна жаба, если есть C++?

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

Хотя жаба конечно тоже байда, но она по крайней мере является шагом в нужном направлении.

> По педивикии - java, первые версии - 1990-1995 примерно, С++, первые версии - начало 1980-ых. Нахрена нужно было такое поделие, когда уже был C++?

А нахрена нужен С++, когда уже был C? :]

yk4ever
()

> Noop говорит НЕТ: > * Наследованию (subclassing)

Наследование- основополагающая, без которого ООП, не ООП. Вопрос, как гугл собрался делать замену ООП Java, если это будет уже не ООП платформа

cerberus
()

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

будем ждать...

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

> Я же говорил, достань руки из жопы

Мы с вами на брудершафт не пили. Что неудивительно - с таким хамлом вообще пить не стоит.

> Но судя по всему, с утечками памяти бороться ты не умеешь,

Умею я многое; вопрос другой - хочу ли? Мне чо, заняться больше нечем, чем бороться с опасными косяками какого-то недодельного языка программирования? Если вы мазохист, не надо меня записывать в свою секту. Кроме того, мы говорим не обо мне, а о ТЫСЯЧАХ программистов, которые требуются индустрии. Вам так хочется тратить их ценное время и мозги на какую-то ерунду? Пусть лучше пишут логику приложения.

yk4ever
()

Хох.. Ну ведь не правда же. Гугл его не разрабатывает. "Who's behind Noop?

Noop is a side-project from a collection of like-minded developers and contributers. We hail from several companies, including (but not limited to) Google."

Зачем исказили?

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

> Да, жаба не тормозит... но только в блогах. И в параллельных вселенных. А так у С++ по скорости сосёт с заглотом.

Она много всего подгружает, поэтому долго стартует. А работает очень быстро. Для серверов - самое оно.

yk4ever
()

> Любой статике

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

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

> бороться с опасными косяками какого-то недодельного языка программирования?
> мы говорим не обо мне, а о ТЫСЯЧАХ программистов, которые требуются индустрии

> Вам так хочется тратить их ценное время и мозги на какую-то ерунду?


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

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

забавно, что вы употребили именно слово "индустрия" в связке с "ТЫСЯЧЕЙ программистов" :)

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

> Наследование- основополагающая, без которого ООП, не ООП.

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

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

> зато нет возни с хедерами - да? ;)

Быстрее разработка и разворачивание, медленнее начальная загрузка и исполнение. Зачастую такой tradeoff оправдан :]

Ладно, всем пис, пора в койку, завтра дожжём.

yk4ever
()

Одно название языка чего стоит. Уже представил:

-Здравствуйте, я явер.

-А я пэхэпэшник.

-А я нуп.

Звездец.

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

>Фигня. Вы меньше читайте учебников про ООП, написанных попугаями-повторяшками и больше соображайте головой. "Наследование" - это всего лишь частный случай реализации интерфейса, где неявным интерфейсом выступает базовый класс.

Попугаи или крокодилы они, мне всё равно. Когда нужно расширить функционал того или иного класса, не изменяя его код, используется простейший способ- наследование. Остальные, мне известные, способы это:

1. Копипаст 2. Паттерн делегирования (разновидность копипаста)

Но эти способы, как по мне, являются полнейшим онанизмом...

cerberus
()

Конечно, они много хотят как всегда, и как всегда ничего хорошего не получиться! (

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

>-А я нуп.
>Звездец.

Зато можно будет сразу отличать молодого бычка^W программера от умудрённого опытом :)

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

>> Ээ, товарищ. Жабо - великий уравнитель. ...
> Руки у тебя из жопы ...


Узнаю ЛОР!

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

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

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

>в большинстве случаев тоже самое

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

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

>> нахрена нужна жаба, если есть C++?

> Ну, наверное, чтоб не трахаться с ручным управлением памятью, иметь более удобные возможности отладки, вменяемую модульность (вместо мышиной возни с .h-файлами) и чёткую стандартную библиотеку.

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

2) Четкая стандартная библиотека. Насколько я понимаю, кол-во frameworks на Java уже к десятку подходит?

3) Вменяемая модульность. H-файл дает возможность быстро просмотреть функциональность модуля, не читая его код. Java в этом случае - шаг назад.

4) С++, по сравнению с C, дал возможность применить ООП, не замедляя результат и сокращая код. Java, по сравнению с C++, увеличивает код, замедляет результат.

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

> Паттерн делегирования (разновидность копипаста)

Ты правда думаешь, что написание портянок кода -- это единственный способ осуществить делегирование?

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

Угу. Там еще нечего даже трогать. К стати с одной стороны интеграция с жабой там непрозрачная, а через "native" - потенциально может быть использован другой бэкэнд. С другой стороны хрена с два - этот язык интегрируется на бэкэнде с гугловски контейнером guice, dep injection имеет как first class, При чем они там как-то замучены на гугловские коллекции - а гугловские коллекции - все из себя суперстатические просто мрачно, елси под интеграцией они имаю ввиду что они физически на них завяжутся - это просто трендец какой-то будет.

Из однозначно правильных вещей - исключение null, немутабельность (к стати интересно как они собираются контролировать немутабельность самих объектов), конструкторы как в скале.

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

Смысл ихнего делегата мне непонятен. Понятен смысл простого синтаксическго делегеривания - непонятно зачем его передавать в конструктор, разве что тут дело в "скальности" конструкторов и это implicit обявление поля-делегата.

Они там еще решают начет "checked" exceptions. Что там решать?

Ничего не написано про лямбды. Пока ничего не ясно с параметрическим полиморфизмом.

А забанить tab на уровне парсера - это сильно. Красные глаза видны издалека.

PS: Компилятор пишут на скале. Гугл еще один юзер скалы:).

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

Ололо, еще один младой плюсофаг.

> 2) Четкая стандартная библиотека. Насколько я понимаю, кол-во frameworks на Java уже к десятку подходит?

Чего же все бустом пользуются или что там у вас еще есть? Вообще универсальная стандартная библиотека это миф. Давно в с++ в стандартной библиотеке появились классы для работы с http? А с потоками?

> 3) Вменяемая модульность. H-файл дает возможность быстро просмотреть функциональность модуля, не читая его код. Java в этом случае - шаг назад.

Явошные классы аннотируются javadoc'ами и о, чудо! В любой IDE, с автокомплитом, появляется прекрасная справка по методам, и никуда лезть не надо.

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

Наконец-то! Миксины победили полиморфизм.

Они там его странно победили.

class Delegator(delegate Delegate d) implements Application {

  Int main(List args) {
    aMethod();
  }

}

Как то с инстансом обекта в качестве «mixin» - более чем странно.

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

>Ну будем считать это первой попыткой!

Учитывая детский уровень обсуждения изобретения таплов - эту попытку можно закапывать.

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

>Хох.. Ну ведь не правда же. Гугл его не разрабатывает. "Who's behind Noop?

Ну в файлах там копирайты гугловые стоят.

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

> Ололо, еще один младой плюсофаг. Попытка оскорбления собеседника при недостатке аргументов?

> Чего же все бустом пользуются или что там у вас еще есть? Вообще универсальная стандартная библиотека это миф. Давно в с++ в стандартной библиотеке появились классы для работы с http? А с потоками?

Не применяйте слово 'все' - вы не знаете его значения. Зачем встраивать в стандарт языка классы http? Потоки входят в stl достаточно давно - лет эдак 15.

> Явошные классы аннотируются javadoc'ами и о, чудо! В любой IDE, с автокомплитом, появляется прекрасная справка по методам, и никуда лезть не надо.

Месье никогда не видел не слышал про Doxygen и C++ IDE? Откройте для себя браузеры классов и всплывающие справки по методам, в Eclipse, непример.

К тому же это все вопросы удобства. Главное все же результат. А он при использовании Java плачевен - громоздкие и медленные программы.

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

Ну просто немерянно детский - они там рассматривают таплы только как multiple return values, и все изобретения свели к "как лучше обявить тип и забиндить это в переменные". Некоторые уникалы даже предлагают это рещультат к спискам биндить. Интересно когда их озарит вот такой момент: f(ft()), где ft возвращает таплN, а f иметь арность N и они в задумчивости начнут чесать репу...

r ★★★★★
()

Ну и нафиг все это? Да лучше бы они Ocaml на JVM портивровали, и заодно его синтаксис бы прическали, по аналогии с F#. Или вообще бы F# портировали.

Всем было бы хорошо: получили бы еще одину реализацию ML. Да и M$ бы нос утерли. Так ведь нет, опять эксплойтят ООП по аналогии со Scala.

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

>Так ведь нет, опять эксплойтят ООП по аналогии со Scala.

К стати микрософт денег дал банде одерскогоя на версию скалы под .NET (включая плугин для студии).

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

> Потоки входят в stl достаточно давно - лет эдак 15

Можно пруф? А то гугол выдает гласы вопиющих в пустыне о потокобезопасности STL-ных контейнеров. Что как бы намекает :)

> Месье никогда не видел не слышал про Doxygen и C++ IDE?

Дык и я о том же. О сомнительности удобства лазанья в заголовочные файлы.

> Главное все же результат.

Очень здравая мысль. Если бы не qt, то с++ стал бы языком для маргиналов.

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

>К стати микрософт денег дал банде одерскогоя на версию скалы под .NET

Не удивляет. С их-то С#. Кроме того, у скалы замедлится релиз-цикл, как это произошло с тем же GHC, и это мелкомягким на руку.

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

> Очень здравая мысль. Если бы не qt, то с++ стал бы языком для маргиналов.

Это, конечно, сильно сказано. Вроде как почти все современные игрушки - они всё таки на си++, если я не ошибаюсь.

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

> Вроде как почти все современные игрушки - они всё таки на си++

Как Вы считаете, сколько процентов программистов пишут игрушки?

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

> Как Вы считаете, сколько процентов программистов пишут игрушки?

как Вы считаете, сколько процентов программистов, пишущих на С++, пишут игрушки?

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

Тяжелая артиллерия подтянулась. Выдержавшая не один холивар C++ vs whatever.

lester, я понимаю, зачем тебе нужен C++. Но совершенно не понимаю зачем он нужен толпе начинающих программистов. Которые гробят лучшие годы своей профессиональной жизни. Что их привлекает в C++? Какие у них задачи, что им нужен обязательно C++?

Когда я 10 лет назад влюбился в этот язык, в моей деревне просто не было выбора. Basic, Pascal и ОН. Неужели за столько времени ничего не поменялось? А сейчас я пишу на питоне и яве, и совершенно не понимаю, зачем добровольно выбирают C++. Наверно, проценты программистов на С++ и мазохистов как-то коррелируют.

baverman ★★★
()

приятно читать срачи на лоре. даже настроение повышается. послушайте, дети, исповедь приплюснутого сишника;)

насчет автоматического выделения памяти. это банальная автоматизация malloc/free освобождающая программисту время и силы. если она реализована неэффективно то это проблемы реализации а не концепции. автоматизация это кстати то для чего были созданы компьютры. суть ее состоит в том чтобы всякие дрочеры на С++ могли решать творческие задачи в то время как машины борятся с рутиной. дрочите дальше @ кушайте бананы.

насчет прямого доступа к памяти, производительности и т.п. для повышения безопасности, устранения неявных зависимостей, упрощения матмодели на которой основан язык, уменьшения вероятности допустить ошибку в логике и пр. и была создана концепция managed (управляемого? не знаю точного перевода, на русском практически не читаю/не общаюсь) кода. единственная проблема этой концепции - производительность. однако (уж поверьте на слово) в большинстве случаев managed код прекрасно компилируется в эквивалентный native код under-the-hood. реализаций которые это делают скольконибудь хорошо на сегодняшний день нет. это и заставляет мастурбировать С++-обезьянок которые считают что чем больше сил программист тратит на решение банальных проблем тем лучше. мозги, мои юнные дрочеры, можно качать и на решении *не*банальных задач.

насчет переносимости. если не читать раздел манов NOTES и ему подобные или программировать только под мейнстримные десктоп-оси то может создасться впечатление что с портированием и впрямь мало проблем. открою вам небольшой секрет, мои юнные дрочеры: есть такой класс систем под названием unix-like характерный тем что практически каждая функция стандартной библиотеки имеет свои особенности для каждой реализации, которые таки нужно учитывать. также, ни о каком "скачал и запустил" в С++ не может быть и речи. поэтому для реализации распределенных приложений С++ подходит меньше всего. нужно помнить что скорость работы распределенных приложений зависит в основном от мощности соединения. так что гоняйте вялого дальше.

Может показаться что я фанат java. это не так. многие концепции в основе java и платформонезависимого программиования в целом остаются верны вне зависимости от конкретной реализации. это драйверам нужен прямой доступ к железу. ну и еще обезьянкам которые гордятся тем что знают С++. адекватный программист это человек знающий и любящий математику, решающий задачи на уровне составления матмоделей. поэтому язык программирования нацеленный на решение прикладных задач должен быть по уровню абстракции весьма близок к языку математических формул. а еще лучше к естественным языкам на которых мы строим свои мысли. вот так, мои юнные быдлокодеры, пытающиеся выглядеть как умудренные опытом программисты.

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

я хрен его знает, что тебе сказать про матмодели и быдлокодинг быдлочсайтов на быдлопохапе и/или быдлояве(который является моей основной работой). Я тебе так скажу - матмодели я только в универе видел. Кстати, нет работки для явабыдлокодера так чтобы мат модели там были и зарплата поболе чем 10 долларей?

Кроме того, как бы все "умудрённые опытом" программисты не надрачивали на манагед код, а приложения на си++ работают быстрее, чем явовские. Да, они багливы - особенно первые версии. Но багливость уходит со временем. А вот тормоза в яве не деваются никуда.

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

>Но багливость уходит со временем. А вот тормоза в яве не деваются никуда.

Ты не поверишь. Но есть приложения на Питоне, который ещё тормознее. И их всё больше и больше... Удивительно, правда?

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

>А сейчас я пишу на питоне и яве, и совершенно не понимаю, зачем добровольно выбирают C++.

Наверное уже и не поймешь (

>Но совершенно не понимаю зачем он нужен толпе начинающих программистов.

Предложишь что-то лучше?!

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

>Но есть приложения на Питоне, который ещё тормознее. И их всё больше и больше... Удивительно, правда?

Уже нет

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

> Наверное уже и не поймешь (

Попробуй объяснить. Многозначительное молчание как бы намекает на неосознаность выбора.

> Предложишь что-то лучше?!

Новичок должен учиться оперировать абстракциями, а не воевать с железякой. И уж точно не писать велосипеды (а ля, однонаправленный связный список, буээ). Поэтому подойдет любой язык без указателей, без ручного управления памятью, и с мощной стандартной библиотекой. Python, Ruby, Java, C# -- самые первые кандитаты.

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