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

> has linus created his os in one day?

бгг, ну нубье, Линус еще версию 0.01 сразу всем показал, прекращай постить свои высеры и займись делом

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

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

Все правильно. Строго говоря, автомат с состоянием (или эффектом памяти). Базовая вещь для программирования. А как ФП позволяет реализовать ее? Красивым ли и эффективным ли будет решение?

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

>>> every object is actually a function and every function is an object

>> Хм. Вообще-то объект - это несколько функций, не? По одной на каждый метод.

> that's the traditional approach, not what i'm talking about

По-моему, здесь никто не может понять, о чем именно ты говоришь.

> every standalone piece of code like an application, driver, whatever just takes some input from one or more sources and directs produced output to one or more targets. hence every program is a function.

Спасибо, капитан.

> after you spend a week or so constantly thinking about the new model if you are bright enough you will start inventing new ways of solving many known problems and your algorithms will become much cleaner, much shorter. that what has happened to me, dude.

Прекрасно, что это изменило твою жизнь. Но лично мне всего лишь хотелось более-менее конкретного ответа о том, как соотносятся объектф и функции. Ответа от практика.

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

> Строго говоря, автомат с состоянием (или эффектом памяти). Базовая вещь для программирования.

Для машины Тьюринга - да. Для лямбда-исчисления - нет. Чисто функциональная программа переводит некоторый набор входных данных в некоторый набор выходных данных. Вопрос, откуда эти данные приходят и куда уходят, в рамках чистого ФП решать не принято.

> А как ФП позволяет реализовать ее? Красивым ли и эффективным ли будет решение?

Мультипарадигменные языки (Lisp, OСaml, Scala, F#) поддерживают императивные конструкции.

В чисто функциональных языках есть монады.

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

> В крестах.

Хммм... А если сравнить еще с Java и Python?

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

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

Ещё есть одинесники, не забывай.

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

>и лисперы

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

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

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

>Ну и где здесь NumPy:

>import sys

....

для тупых: посмотрите что такое NumPy... алсо Вам не мешает вспомнить о чём мы разговаривали...

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

>>вычисляет факториал от 5000000

>А ты посчитай факториал от результата, возведенного в 10-ю степень. Или 5000000 максимальное натуральное число?

а я код привёл - возьми и посчитай :)

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

> Ещё есть одинесники, не забывай.

Одинэсники не делают высказываний. Они размахивают руками, мычат и тыкают пальцем в разные загадочные формочки и менюшки.

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

>Но лично мне всего лишь хотелось более-менее конкретного ответа о том, как соотносятся объектф и функции.

i hope it won't be a surprise if i say that objects in my model are a bit different from those in traditional oop. look, my model is not very hard to comprehend but i think it's not the right place to present it. my project is approaching prealpha testing so anyway it's time to think about its website. so. i guess an account at some hosting like sourceforge will do for now. after i'm done with setting up a repository (most probably it will be a bazaar repo) i'll start creating short articles describing the model as well as my current implementation. everything i'll publish will be accessible via the repository and we'll be able to continue our conversation on a separate mailing list. i'm gonna setup everything tomorrow and the first article will emerge in two-three maybe four days. i'll drop a link to the repo here as soon as it's set up.

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

> Значит, map/reduce -- хорошо, а dolist -- плохо?

Хорошо - это когда быстро написал программу, легко развернул, она правильно и достаточно быстро заработала и ты её потом легко модифицировал с учётом новых требований. Разумеется, в целевой функции у всех этих метрик различные веса.

А уж dolist(foreach) или map/reduce помогут вам оптимизировать эти метрики - уже надо смотреть по обстоятельствам.

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

i hope it won't be a surprise if i say that objects in my model are a bit different from those in traditional oop.

Вспомнилась известная задача «в пустыне есть лев, надо поймать его в клетку»:

Терминологическое решение: Обозначим словом «клетка» пустыню. Лев в клетке исходя из условия задачи. Задача решена.

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

>> Но лично мне всего лишь хотелось более-менее конкретного ответа о том, как соотносятся объектф и функции.

> i hope it won't be a surprise if i say that objects in my model are a bit different from those in traditional oop

Будет. Похоже, мы говорим на разных языках.

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

>> i hope it won't be a surprise if i say that objects in my model are a bit different from those in traditional oop

>Будет. Похоже, мы говорим на разных языках.

"Кузьмич, ты что - финский освоил?" лол

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

i think you were too sarcastic this time. in traditional oop an object is usually an instance of a class that may have fields, properties and methods. so you end up with at least that many different unique kinds of object in your problem domain. in my model you only have functions(or objects, these terms are almost interchangeable in my model). there are no methods, no classes, no variables - only functions. and i'm not just trying to apply the same term to different things. i'm really talking about functions. to be exact about pure functions and complex functions that consist of pure functions and/or other complex functions. it gives me simplicity, safety and flexibility. i can describe any real life object as a function consisting (unless the object is structureless) of other functions. the way these functions interchange with data is very straightforward so i don't have to keep in mind many nuances that i have to think about when programming in other object oriented or functional languages. and please note that when i first claimed that objects and functions are the same that claim was made inside a generic context, not inside a context of some specific programming language. every implementation has its own object model so talking about objects and functions in general in context of say C++ or java would be absolutely pointless. i think that's obvious.

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

> Всем, всем, всем. Было очень забавно. Очень много радости принесли. Мне пора начинать писать плагин к gedit для редактирования xml. На питоне :) Думаю за 10 часов справлюсь.

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

Итак, один тролль слил. Кто ещё собирается продемонстрировать свою крутизну на деле, а не на словах?

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

>...or maybe you are too stupid, little idiot?...

Узнаю стиль профессора Луговского, любителя потроллит дважды приплюснутых и горячего поклонника ФП.

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

>>...or maybe you are too stupid, little idiot?...

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

Да ну. Это пионер-подражатель какой-то.

Луговский был вполне себе умён и эрудирован. А его маты и оскорбление олигофре^Wоппонентов - это так, шелуха.

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

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

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

Программирование - это не только тот говнокод, в котором тебе приходилось копаться до сих пор. Или ты думаешь, что software transactional memory - это тоже изотерика?

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

>Или ты думаешь, что software transactional memory - это тоже изотерика?

Это панацея для быдлокодеров, неосиливших мьютексы и конечные автоматы.

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

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

> Все правильно. Строго говоря, автомат с состоянием (или эффектом памяти). Базовая вещь для программирования. А как ФП позволяет реализовать ее? Красивым ли и эффективным ли будет решение?

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.840

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

> Это панацея для быдлокодеров, неосиливших мьютексы и конечные автоматы.

Другими словами, optimistic locking - панацея для быдлокодеров, неосиливших pessimistic? :-D

> тем ценнее будут те, кто не разучился думать.

Это ты, неуч, про себя что ли? :-D

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

> Про тормозную жабу уже позорно в приличном обществе позориться Читай http://blogs.azulsystems.com/cliff/

Кстати, мы используем их железки. Это просто отличные штуки! я не представляю, сколько бы нам иначе потребовалось серверов, чтобы заменить одну такую зверюгу....

val-amart ★★★★★
()

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

val-amart ★★★★★
()
Ответ на: комментарий от pitekantrop

Другими словами, optimistic locking - панацея для быдлокодеров, неосиливших pessimistic? :-D

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

lock(list->mutex);
new_element->next = list->head;
list->head = new_element;
unlock(list->mutex);

А там это что, будет в виде

start_transaction(list);
new_element->next = list->head;
list->head = new_element;
end_transaction(list);

Не вижу особой разницы.

Это ты, неуч, про себя что ли? :-D

То есть, если у быдлокодера не хватает ума на ручное управление ресурсами (памятью, файловыми дескрипторами), он автоматически причисляется к элите, которая слишком хороша, чтобы осознавать, что стоит за каждой строчкой их быдлокода?

linuxfan
()

Кстати, я вот смотрю на банер "Highload++" и думаю, что ведь не зря он "++", а не какой-нибудь "Hl-PHP" или "Hl-Java". Не доросли поделки с тормозными gc до серьезных нагрузок. Максимум -- это "ынтерпрайз", где в лучшем случае полторы тысячи офисных хомячков будут два раза в день смотреть на корпоративный сайт. При этом задача самого сайта -- сделать сложный эскуэль запрос и красиво показать его результаты.

И после этого интерпретируемые быдлокодеры еще осмеливаются вопить, что C++ не нужен. Стыдно, граждане!

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

> Не вижу особой разницы.

Хреновое у тебя API для STM, но не в этом дело. Разница в отсутствии дедлоков.

> То есть, если у быдлокодера не хватает ума на ручное управление ресурсами (памятью, файловыми дескрипторами), он автоматически причисляется к элите, которая слишком хороша, чтобы осознавать, что стоит за каждой строчкой их быдлокода?

Ой, ну не надо лялякать. Это ещё в С можно понять, что стоит за каждой строчкой, ну уж никак не в С++.

И ты хорошо представляешь, что стоит за строчкой SQL? Или скажешь, SQL тоже для быдла?

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

Кстати, я вот смотрю на банер «Highload++» и думаю, что ведь не зря он «++», а не какой-нибудь «Hl-PHP» или «Hl-Java».

Ты попал пальцем в небо :-D

http://highload.ru/delegates/5577.html См. языки.

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

>Разница в отсутствии дедлоков.

Ах да. Разница в том, что не надо думать.

>И ты хорошо представляешь, что стоит за строчкой SQL? Или скажешь, SQL тоже для быдла?

Прекрасно представляю, поэтому активно использую мозг и EXPLAIN при написании запросов.

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

>>И ты хорошо представляешь, что стоит за строчкой SQL? Или скажешь, SQL тоже для быдла?

>Прекрасно представляю, поэтому активно использую мозг и EXPLAIN при написании запросов.

Тебе EXPLAIN рассказывает про то, как сервер баз данных работает с файловыми дескрипторами и памятью? Забыл, что ты говорил выше?

>То есть, если у быдлокодера не хватает ума на ручное управление ресурсами (памятью, файловыми дескрипторами), он автоматически причисляется к элите, которая слишком хороша, чтобы осознавать, что стоит за каждой строчкой их быдлокода?

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

> Луговский был вполне себе умён и эрудирован. А его маты и оскорбление олигофре^Wоппонентов - это так, шелуха. > Да и насколько я помню его последние выступления, он был горячим поклонником метапрограммирования на лиспе.

Мда, в треде явно не хватает Виталика :)

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

Собственно, а где наш анонимный англоговорящий супер-мега-гуру? Неделя уж прошла, а Германа все нет...

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