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. "Наш новый GC решает нашу новую проблему".

ты вспомни фаерфокс 2, на чём он написан, и про его проблемы с фрагментацией.

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

> т.е. виноват с++ который не может справиться с таким проектом без полного переписывания.

для такого объема и сложности - таки все шустро, посмотрите приложения на "голом" Qt, по-моему вы проблемы разработчиков КДЕ перекладываете на других

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

Вы забыли обрамляющие теги.

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

Уже в Java 1.4 был NIO. Так что пока ваши теоретические изыскания не подтвеждены абсолютно ни чем.

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

> ты вспомни фаерфокс 2, на чём он написан, и про его проблемы с фрагментацией.

а что есть быстрые аналоги на Java? :)))))

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

>для такого объема и сложности - таки все шустро, посмотрите приложения на "голом" Qt

Э... Ну, в Gentoo, где вопросы зависимостей заметнее, чем в других дистрах, хорошо видно, что большинство Qt3 приложений на Qt4 переписывались очень медленно (и некоторые до сих пор или не переписались, или в стадии альфа) и что в рамках Qt4 внутри минорных версий периодически ломалась совместимость :)

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

> Вы забыли обрамляющие теги.

всего лишь указал на очевидное - ничего рельно вы не сравнивали

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


потому я и попросил предоставить решение на Java

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

>C - очень простой. C++ - очень сложный. Первым можно пользоваться, вторым не стоит.

Да?! Не знаю. У меня обратная точка зрения.

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

>> Любые пулы всегда будут медленнее стека, причём на много.

>Докажите :]

Мне лень. Лучше вы опровергните. Это проще (если бы было возможно).

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

ты точно быдлокодер. malloc говорит "нет памяти" когда нет целого куска нужной длины. Ты постоянно выделяешь куски по 100 метров, чтобы потом в них использовать пару (кило-)байт? Тогда ясно почему у тебя память - это проблема и ограничение. Как я писали пару страниц назад - руки из жопы достань.

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

> Э... Ну, в Gentoo, где вопросы зависимостей заметнее, чем в других дистрах, хорошо видно, что большинство Qt3 приложений на Qt4 переписывались очень медленно

скорее больше из-за нежелания их авторов

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

>>И вообще все числа всегда он считает точно

>Тяжёлый случай :)

Быстрое приближённое вычисление факториала на питоне в студию.

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

>Не всегда. Учите матчасть.

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

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

>Ну ты на вопрос ответь, если ты сам не такой щекастый.

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

>Питон ровно так же, как и Си++, может посчитать факториал в double.

Покажи.

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

> Я думал тред просто завалит кусками кода.

LOR -- это не твоя собственная армия программистов

> Видимо основная часть школоты в положенном им месте. А так только три калеки привели кучку неработающего говна.

Видимо, ты всё-таки Д'Артаньян.

> Очень малая часть программистов на C++ использует правильные инструменты и умеет писать безопасный код.

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

> Превращение личинок плюсовиков в бабочек -- очень дорогая и трудоемкая операция. Проблема только в этом.

> ...Я на сях писал 5 лет назад...

Это не проблема. Непревратившиеся личинки плюсовиков умирают -- идут писать на Питоне, Яве, и т.д. -- их квалификации на это вполне хватает, а сопли подотрёт заботливый runtime с GC.

>> Понимаешь ли, подавляющее большинство плюсовиков знают, что для факториалов нужно использовать абстракцию "больших" чисел и пойдут за ней на http://sourceforge.net/projects/cpp-bigint/

> Отчего же никто из вас не пошел? Когда носом ткнули, только тогда начали копошиться.

Я тебе четыре раза говорил "прочитай комментарии", там в трёх местах указано ограничение на применимость. Я выбрал такое ограничение, какое мне было удобно, потому что своё ты указать неудосужился. Что это -- неумение формализировать требования?

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

> Что это? Неужели баттхёрт? Вообще то я недеялся выявить только восторженную школоту от C++.

Что это? Неужели бессмысленная попытка поглумиться над начинающими программистами, дифференцированная по признаку выбора языка программирования?

> Специалисты всегда в почете.

Откуда им взяться-то если каждый встречный-поперечный со свистом и улюлюканьем заявляет: "тот кто учится программированию использую C++, совершенно не понимает как важны абстракции и не умеет их применять" ?

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

> А, этсамое, Geany? SciTE?

У gedit безобразно простой api. Сравним с вимом. В дальнейшем планирую написать плагин для редактирования php и groovy и получить наконец вменяемую среду, в которой можно будет работать работу.

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

> потому я и попросил предоставить решение на Java

Дайте решение на плюсах и мы сравним.

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

нетбинс для груви не подошел ? Все вменяемые иде его уже поддерживают. В нетбинсе в родных проектах (в мавеновских пока не пробовал) работать с ним более чем удобно.

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

>для такого объема и сложности - таки все шустро,

а продолжая логическую цепочку - такой объём и сложность возникли из-за с++.

>посмотрите приложения на "голом" Qt, по-моему вы проблемы разработчиков КДЕ перекладываете на других

Что-то их не много сложных( опенсорс ), как-то все не хотят без кде либс что-то делать, к чему бы это?

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

> Понимаете, мосье baverman попросту опровергал тот дурной тезис, что дескать плюсовики лучше обучены, а кто кресты не осилил - тот быдлокодер.

4.2

мосье baverman заявил, что "тот кто учится программированию использую C++, совершенно не понимает как важны абстракции и не умеет их применять".

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

Выяснилось, что мосье baverman не читает то, что пишут его собеседники.

> Вывод: язык не важен, важно знание основ.

Ты открыл Амерку!

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

> REPL

посчитать простое выражение вида A[ i ] > B[ i ] я могу в дебаггере, просто введя его в Watch, более сложные вещи можно сделать с "Edit and continue", которое позволяет на лету подхватывать изменения в коде

> рефлексией


в том же дебаггере VC предоставляет всю информацию об объекте, его методах, полях и родителях

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

> 128 бит должно хватить для любых программ

Где-то я это слышал. А, "640 KB ought to be enough for everyone" :-)

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

> а продолжая логическую цепочку - такой объём и сложность возникли из-за с++.

хочу увидеть простой и маленький аналог с той же функциональностью

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

>детали внутренней реализации Питона

Вообще-то эти детали влияют на стиль программирования. (copy vs deepcopy и прочий тихий ужас)

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

>Передается все по значению. Но все переменные - ссылки на изменяемые и неизменяемые объекты. Поэтому передается только копия ссылки.

Такой тип поведения должен быть явно задаваем, а не подразумеваем. Банальный дефект дизайна. Не устраивает дефектностью :)

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

Ну ты на вопрос ответь, если ты сам не такой щекастый.

Да, ты правильно понял

Вопросов больше нет.

Питон ровно так же, как и Си++, может посчитать факториал в double.

Покажи.

def fac(n):
        if n == 0.0:
                return 1.
        else:
                return fac(n-1)*n

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

>задача в ответ - дана строка на 1млн символов, где слова разделены пробелами, раздели ее максимально быстро на массив слов

А вот еще люди задачу решают

1. Четыре человека разных лет подошли ночью с лампочкой к мосту.
Мост узкий, т.е. пройти по нему могут не более двух человек с лампой.

На прохождение моста каждому из путешественников нужно соотв. 1, 2, 5 и 10 мин. Пара двигается со скоростью более медленного.
Как пересечь мост по-быстрее?

2. Обобщить задачу для N-путников с t[1;N]. Найти эффективное решение или показать NP-полноту.

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

>не-не-не. Мы о языках говорим, а не о математике.

А зря :) Когда язык позволяет сделать что-то быстрее конкурента, то остаётся время, которое программист может потратить на оптимизацию поиском более удобного алгоритма. Или даже более производительного решения в рамках навязанного алгоритма.

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

>хочу увидеть простой и маленький аналог с той же функциональностью

да, до буквальных over9000 багов пока не многие программы доросли, так что этого функционала в другом ПО придётся подождать лет десять.

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

> да, до буквальных over9000 багов пока не многие программы доросли, так что этого функционала в другом ПО придётся подождать лет десять.

вот так просто слили? :)

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

> А вот еще люди задачу решают

баян, решение легко гуглится

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

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

Ты ведь завтра покажешь его нам всем, да?

> В дальнейшем планирую написать плагин для редактирования php и groovy и получить наконец вменяемую среду, в которой можно будет работать работу.

То есть тебе факториалы для веба нужны? Или ты на PHP численные расчёты выполняешь? Ах, да! На PHP ведь очень удобно "понимать и применять абстракции".

Позор всем плюсовикам -- их водил за нос гуру от PHP!

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

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

Это ты сейчаст так незаметненько заявил, что программисты на c++ выбирают худшие алгоритмы, чем программисты на жабе и питоне? Да ты просто Испаритель Луж.

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

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

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

год назад такую видел в виде флэш игрухи :)

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

Это Squeak а не Smalltalk. Это все равно что ReactOS назвать такой-же Windows, как и Windows 7

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

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

petrosyan.svg

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

>Это ты сейчаст так незаметненько заявил, что программисты на c++ выбирают худшие алгоритмы, чем программисты на жабе и питоне?

Нет. Это у тебя в логике где-то проколы. ГСМ?

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

А оказывается, поставив одну почти незаметную точечку можно изменить используемый тип данных

#include <iostream>

int main()
{
    std::cout << 1/3;
    return 0;
}

вывод: 0

#include <iostream>

int main()
{
    std::cout << 1./3;
    return 0;
}

Вывод: 0.333333

Так ты свой вопрос про точку про Си++ задавал? :) Тогда понятно, почему софт на Си++ такой глючный :D

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

>2. Обобщить задачу для N-путников с t[1;N]. Найти эффективное решение или показать NP-полноту.

реквестирую ответ. у меня почему-то n^2 получилось...

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

>> Числа с точкой - время 1000000 вычислений в секундах. Бигинт на 50000% тормознее. Так и весь питон на столько же тормознее плюсов.

> Я правильно понял - ты сравниваешь _приближенное_ вычисление факториала в плавающем формате, и _точное_ - в целочисленном формате, и на основании этого делаешь выводы о сравнительной скорости Си++ и Питона?

алсо, для приближенного факториала нормальные люди пользуются формулой Стрилинга.

c:Sinai abusers

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

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

При Сталине такая ситуация не могла бы возникнуть

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

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

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

import sys

def fact(n): result = 1 while n > 1: result *= n; n -= 1

return result

print fact(int(sys.argv[1]))

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

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

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

import sys

def fact(n):
result = 1
while n > 1:
result *= n;
n -= 1

return result


print fact(int(sys.argv[1]))

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

думаю стоит проверить - можете плз написать сюда полный пример кода на Java

Короче, где-то так:

import java.io.*;
import java.util.*;

public class  TestSplit{
    public static void main(String[] args) throws FileNotFoundException, IOException {
        FileReader fileReader = new FileReader("1.txt");
        char[] buf = new char[500000];
        fileReader.read(buf);
        String s = new String(buf);
        Date t0 = new Date();
        String[] words = s.split(" ");
        Date t1 = new Date();
        System.out.println("words: " + words.length);
        System.out.println("time: " + (t1.getTime() - t0.getTime()));
    }
}
yk4ever
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.