LINUX.ORG.RU — Русская информация об ОС Linux

[#]  

Google дал оценку Java и C++

Один из ведущих инженеров Google — Роб Пайк (Rob Pike) — выступил на конференции O'Reilly Open Source Convention (OSCON) и выразил мнение корпорации о современных языках разработки и месте C++ и Java в них. Он отозвался об этих индустриальных китах очень негативно, назвав их многословными, чрезмерно сложными и неадекватными к применению в решении задач современной компьютерной инфраструктуры.
"Я думаю, что эти языки слишком сложны для использования, слишком трудны для понимания, слишком замысловаты. Они очень многословны, их сложность, громоздкость и непонятность возрастают со временем", — заявил Роб.

>>> Подробности

Метки: c++, google, java, программирование

Karapuz **** (24.07.2010 15:08:21)
Проверено: mono (24.07.2010 16:31:17)
Juick

[#] Ответ на: комментарий от robux 25.07.2010 0:35:17  

Да, это проблема.

yantux * (25.07.2010 0:41:19)
[#] Ответ на: комментарий от buddhist 25.07.2010 0:07:43  

[толсто]PL/I же[/толсто]

Ни чего не понял, поясните плиз.

yantux * (25.07.2010 0:43:03)
[#] Ответ на: комментарий от yantux 25.07.2010 0:33:53  
yoghurt

>среда разработки на подобе лазаруса к нему есть

Есть Emacs со Slime - хватит. Ну и всякие там коммерческие реализации с фирменными IDE тоже есть, да.

>насколько сложен этот язык?

ХЗ. Трудно сказать. Он сложен и прост одновременно :)

yoghurt ***** (25.07.2010 0:46:54)
[#] Ответ на: комментарий от yantux 25.07.2010 0:35:51  
hdd

>Чем гамбас лучше Паскаля, Си и С++?
Тем что - бесик.
А если серьезно, то:
1) Синтаксисом (; - ненужно, {} - ненужно)
2) Читаемостью
3) Привычностью (бейсик - это же классика)

hdd (25.07.2010 0:49:43)
[#] Ответ на: комментарий от hdd 25.07.2010 0:49:43  

Тем что - бесик.

Не я против... на писался на бейскике, на паскале на Си... паскаль наше всё...

yantux * (25.07.2010 0:54:27)
[#] Ответ на: комментарий от hdd 25.07.2010 0:49:43  
robux

если уж речь зашла о "классике":

18B2:0100  6A 00 68 4B 01 66 83 7E-E0 00 74 05 B8 4C 01 EB
18B2:0110  03 B8 4A 01 2B D2 52 50-57 FF 36 C4 34 00 A1 18
18B2:0120  F7 7F 83 C4 12 56 9A 16-44 F7 7F FF 76 FE 9A 59
:D

robux (25.07.2010 0:56:07)
[#]  
XVilka

Почитал я тутториал по его языку - ничего революционного. Смесь какая-то явы и плюсов.

Тут сразу думается про C++0x, про Java 7, про Python 3...

Вот это скорее действительно революция.

P.S. Имхо.

XVilka ** (25.07.2010 1:09:05)
[#] Ответ на: комментарий от XVilka 25.07.2010 1:09:05  
jtootf
>>-----Цитата---->>

Вот это скорее действительно революция.

<<-----Цитата----<<

революция?

>>-----Цитата---->>

В. И. Ленин, Маевка революционного пролетариата

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

<<-----Цитата----<<
>>-----Цитата---->>

В. И. Ленин, Детская болезнь «левизны» в коммунизме

Лишь тогда, когда «низы» не хотят старого и когда «верхи» не могут по-старому, лишь тогда революция может победить.

<<-----Цитата----<<
jtootf **** (25.07.2010 1:25:45)
[#]  

и того 7 страниц бреда ^__^

anonymous (25.07.2010 1:47:12)
[#] Ответ на: комментарий от XVilka 25.07.2010 1:09:05  

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

JFreeM *** (25.07.2010 1:52:02)
[#] Ответ на: комментарий от XVilka 25.07.2010 1:09:05  

> Вот это скорее действительно революция.

ахаха, охохо. у тебя хоть один проект на этих языках есть? на предшественниках (версионно), а? %)

bobrik * (25.07.2010 1:54:26)
[#] Ответ на: комментарий от anotheranonymous 24.07.2010 16:25:46  

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

В таких случаях принято говорить, что плохому танцору всегда что-то мешается.

linuxfan * (25.07.2010 3:16:58)
[#]  
Buy

Если C++ такой плохой, почему же (к примеру) КДЕ именно на нём? Как никак одна из основных сред. Или там одни мазохисты и не адекватные люди? Вот сидят и мучаються, не понимают что заблуждаються: сложно всем, трудно, непонятно, замысловато, но продолжают писать...

Buy *** (25.07.2010 4:15:49)
[#] Ответ на: комментарий от bobrik 25.07.2010 1:54:26  
XVilka

По-моему лучше развиваться так - все три перечисленных мною C++, Java, Python - взрослые, широкоприменяющиеся языки. (очень широко)

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

с каких пор лямбда-выражения стали только синтаксическим сахаром?

А то почему то все забывают сколько проектов использует эти языки

есть проект на Java + Python (но закрытый)

серверная часть на яве - питон для веб-морды и клиентов

XVilka ** (25.07.2010 6:54:58)
[#] Ответ на: комментарий от Buy 25.07.2010 4:15:49  

вспомни/найди, в каком году KDE был основан, и подумай, много ли тогда было альтернатив семейству С/С++ в системном программировании

Zloddey * (25.07.2010 8:15:10)
[#] Ответ на: комментарий от ahonimous 24.07.2010 22:47:00  
DNA_Seq

>т.е. назвать язык, который может заменить С++, ты не можешь

Зачем его заменять? Он как мясо-молочная порода крупного рогатого скота, то есть в результате не имеем ни молока ни мяса.

Смотреть надо по задачам:
числодробилка - фортран
гуевый фронэнд - PyQt
разработка прототипа - руби/питон
обработка текста - перл/руби
веб - перл/руби/пхп
скрипты для администрирования - перл/руби
и т.д.

DNA_Seq *** (25.07.2010 8:38:11)
[#] Ответ на: комментарий от Buy 25.07.2010 4:15:49  
DNA_Seq

Если C++ такой хороший то почему как скриптовый язык в кедах все шире используется Ruby?

DNA_Seq *** (25.07.2010 8:39:32)
[#]  

Они и в самом деле многословны

Особенно плюсы:

#include <iostream>

using namespace std;

class TooManyWords {
public:
    TooManyWords ();
    virtual ~TooManyWords ();

    void SetValue (int value);
    int GetValue () const;

private:
    int _value;
};

TooManyWords::TooManyWords ():
_value (0)
{
    cout << "ctor" << endl;
}

TooManyWords::~TooManyWords () {
    cout << "dtor" << endl;
}

void TooManyWords::SetValue (int value) {
    _value = value;
}

int TooManyWords::GetValue () const {
    return _value;
}

int main () {
    TooManyWords tmw;
    tmw.SetValue (5);
    cout << tmw.GetValue() << endl;
    return 0;
}

Хотя джава всё же лаконичнее:

public class TooManyWords {
    private int value = 0;

    public TooManyWords () {
        System.out.println ("ctor");
    }

    public void setValue (int value) {
        this.value = value;
    }

    public int getValue () {
        return value;
    }

    public static void main (String []args) {
        TooManyWords tmw = new TooManyWords ();
        tmw.setValue (5);
        System.out.println (tmw.getValue());
    }
}

Для сравнения:

class LessWords:
    def __init__(self):
        value = 0
        print "ctor"

lw = LessWords()
lw.value = 5;
print lw.value

P.S.: /me не питонщик

Zloddey * (25.07.2010 8:45:46)
[#] Ответ на: Они и в самом деле многословны от Zloddey 25.07.2010 8:45:46  

Re: Они и в самом деле многословны

ЭЭ, а где аксессоры в питонокоде, а деструктор? Нечестно.

no-such-file * (25.07.2010 8:54:18)
[#] Ответ на: Re: Они и в самом деле многословны от no-such-file 25.07.2010 8:54:18  
DNA_Seq

В интерпретаторе? ;)

DNA_Seq *** (25.07.2010 8:57:08)
[#]  
darkshvein

С этого дня!

Объявляю июль месяцем вбросов

darkshvein *# (25.07.2010 8:59:43)
[#] Ответ на: комментарий от anotheranonymous 24.07.2010 15:16:23  
darkshvein

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

Так... у кого там, говоришь, руки кривые?

darkshvein *# (25.07.2010 9:09:33)
[#]  
vasily_pupkin

Поносов дал оценку водоканалу )))

vasily_pupkin *** (25.07.2010 9:30:43)
[#] Ответ на: Re: Они и в самом деле многословны от no-such-file 25.07.2010 8:54:18  

Говорю ж, не пытонщик :)

С деструктором будет на 3 строчки (и на 5 слов) длиннее. Плюсам до такого всё равно как до Луны:

class LessWords:
    def __init__(self):
        value = 0
        print "ctor"

    def __del__ (self):
        print "dtor"

lw = LessWords()
lw.value = 5;
print lw.value

А аксессоры - они здесь нужны вообще? Поле доступно для чтения и для записи какбе.

Zloddey * (25.07.2010 9:34:22)
[#] Ответ на: Они и в самом деле многословны от Zloddey 25.07.2010 8:45:46  

Re: Они и в самом деле многословны

На каком КУРСЕ ?????

anonymous (25.07.2010 9:37:12)
[#] Ответ на: Re: Они и в самом деле многословны от anonymous 25.07.2010 9:37:12  

ололо, уже ни на каком. выгнали давным-давно

Zloddey * (25.07.2010 9:40:51)
[#] Ответ на: комментарий от Zloddey 25.07.2010 9:34:22  
Joe_Bishop

> С деструктором будет на 3 строчки (и на 5 слов) длиннее. Плюсам до такого всё равно как до Луны:

> А аксессоры - они здесь нужны вообще? Поле доступно для чтения и для записи какбе.

Вообще-то вопрос «должен был быть: зачем нужен деструктор?», а не «зачем нужны аксессоры». Аксессоры нужны для контроля доступа к полю, чтобы не было введено не то значение. Деструктор же не нужен. Аксессоры запишутся в три строчки каждый: @property и @value.setter

Joe_Bishop * (25.07.2010 10:47:24)
[#]  

Весь тред одной строкой: "Аудитория LOR'a дала оценку ведущему инженеру Google." 7 страниц. Эко зацепило.

mezzoforte (25.07.2010 11:14:47)
[#] Ответ на: комментарий от XVilka 25.07.2010 6:54:58  
hdd

Да, Python - нормальный язык

В отличие от c++ и java!

hdd (25.07.2010 11:34:41)
[#]  

Ну если ему Java сложна и раздута, то "простой" язык это только Unlambda или Brainfuck.

anonymous (25.07.2010 12:11:28)
[#] Ответ на: комментарий от erfea 24.07.2010 18:53:00  

> s/Один из ведущих инженеров Google/Один из ведущих быдлокодеров Google

Примитивная малолетняя лорячья школота гонит на самого Пайка? Цирк, однако. И это симптоматично - значит, школота как минимум не читала его книгу.

anonymous (25.07.2010 12:34:02)
[#]  
Eugeny_Balakhonov

Странно как-то. Ладно С++, там есть где разгуляться. Но Java в современном виде - что может быть проще? EJB 3.0, JPA - вообще доступны для детей.

Eugeny_Balakhonov ** (25.07.2010 12:52:54)
[#]  

Go это посмещище среди языков. Дженериков и тех нет.

c:criticism flexner. Даже капча критикует.

anonymous (25.07.2010 13:13:08)
[#] Ответ на: комментарий от Zloddey 25.07.2010 9:34:22  

> А аксессоры - они здесь нужны вообще? Поле доступно для чтения и для записи какбе.

а зачем ты тогда на C++ и Java сделал его приватным какбе?

ahonimous (25.07.2010 13:36:42)
[#]  
Aid_

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

Aid_ * (25.07.2010 13:41:13)
[#] Ответ на: комментарий от anonymous 25.07.2010 13:13:08  

> Go это посмещище среди языков. Дженериков и тех нет.

ну не посмешище, но место применения ему будет трудно найти

ahonimous (25.07.2010 13:42:47)
[#] Ответ на: комментарий от DNA_Seq 25.07.2010 8:38:11  

> Смотреть надо по задачам:
> числодробилка - фортран


таки С++ тут неплох

> гуевый фронэнд - PyQt


Qt? :)

> обработка текста - перл/руби

> веб - перл/руби/пхп

> скрипты для администрирования - перл/руби


ну С++ тут и так почти не причем

ahonimous (25.07.2010 13:59:10)
[#] Ответ на: комментарий от anotheranonymous 24.07.2010 16:45:07  

вычисления распределенные на erlang никто не пишет...

loki_ * (25.07.2010 14:02:45)
[#] Ответ на: комментарий от DNA_Seq 25.07.2010 8:38:11  

Наверное я старомоден, но как-то на обычном С++/Qt пишется ничем не сложнее, чем на PyQt. Динамическая типизация в Python ИМХО создает больше проблем, чем отсутствие GC в С++ (тем более Qt здесь многое на себя берет), если конечно речь о проекте не на 100 строк. Скриптовый язык и в Африке скриптовый, пытаться писать на нем что-то крупное - это быть ССЗБ.

PayableOnDeath * (25.07.2010 14:15:11)
[#] Ответ на: комментарий от vertexua 24.07.2010 22:31:31  

Хых, ну, это же вырожденный случай, Вы не находите? Эдак сюда программисты микроконтроллеров придут и скажут: в топку ваши компиляторы, они неспособны по-настоящему хороший код генерировать

AlexM ***** (25.07.2010 14:17:59)
[#] Ответ на: комментарий от Zloddey 25.07.2010 9:34:22  

> print "ctor"

(Голосом Слонёнка) Инициализатор, извините

AlexM ***** (25.07.2010 14:19:49)
[#] Ответ на: комментарий от robux 25.07.2010 0:56:07  

> если уж речь зашла о "классике"

классика в восьмеричных кодах -- у них хорошая читаемость

dilmah ***** (25.07.2010 14:20:27)
[#] Ответ на: комментарий от PayableOnDeath 25.07.2010 14:15:11  

> как-то на обычном С++/Qt пишется ничем не сложнее, чем на PyQt

Ну, в общем, да, в целом, не сложнее. Только это уже не C++.

AlexM ***** (25.07.2010 14:22:35)
[#] Ответ на: комментарий от Eugeny_Balakhonov 25.07.2010 12:52:54  

У меня дружок как-то находил статейку, в которой сложность языка оценивалась количеством языковых конструкций. Ява явно (каламбур, каламбур) не блещет простотой в этом свете.

AlexM ***** (25.07.2010 14:24:53)
[#] Ответ на: комментарий от AlexM 25.07.2010 14:22:35  

> Ну, в общем, да, в целом, не сложнее. Только это уже не C++.

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

ahonimous (25.07.2010 14:26:25)
[#] Ответ на: комментарий от DNA_Seq 25.07.2010 8:39:32  

> Если C++ такой хороший то почему как скриптовый язык в кедах все шире используется Ruby?

Внезапно! Потому что C++ - не скриптовый?

AlexM ***** (25.07.2010 14:26:43)
[#] Ответ на: комментарий от ahonimous 25.07.2010 14:26:25  

Если заниматься буквоедством, то заметная часть C++-ного компилятора реализуема как препроцессор к C (а пример Vala показывает, что и богаче можно препроцессор написать). Только, увы и ах, всё это - интимные подробности функционирования механических мужиков, человекам не интересные.

А человеки в случае C++/Qt пишут на некоем диалекте, который, с одной стороны, не приветствует использование стандартных для C++ приёмов (мегашаблонов, стандартной библиотеки), а с другой - вносит свои приёмы, отсутствующие в "общеупотребительном" C++. Так что я склонен считать это отдельным языком.

AlexM ***** (25.07.2010 14:34:38)
[#] Ответ на: комментарий от AlexM 25.07.2010 14:22:35  

Пожалуй, да, но это даже к лучшему.

PayableOnDeath * (25.07.2010 14:37:26)
[#] Ответ на: комментарий от AlexM 25.07.2010 14:34:38  

> Если заниматься буквоедством, то заметная часть C++-ного компилятора реализуема как препроцессор к C

уже давно нет, когда С++ был "С с классами" - то да

> а с другой - вносит свои приёмы, отсутствующие в "общеупотребительном" C++


все эти приемы легко реализуются и без своего препроцессора, moc используется по другим причинам

ahonimous (25.07.2010 14:44:20)
[#]  
Buy

C opennet: "...Продемонстрировав типичный пример кода на Java, в котором объявление переменной заняло почти полную строку экрана, Роб спросил у зала, как подобным языкам можно учить студентов и использовать их для промышленного программирования, такая разновидность программирования слишком бюрократична и требует разжевывания каждого шага для компилятора. Неодобрение Роба Пайка также коснулось производительности интерпретируемых языков и динамической типизации. Следующим этапом после Java стало развитие более высокоуровневых языков, подобных JavaScript, Ruby и Python, но к сожалению программы на этих языках выполняются слишком медленно, плохо масштабируются и не защищены от появления ошибок. В качестве альтернативы инженеры Google предложили свой вариант - язык Go..."

Какбэ слижком заангажированно выглядит, обложил практически всё по порядку и потом предложил свой "лучший" вариант. Ради чего и было всё затеяно.

Buy *** (25.07.2010 14:55:03)

О Сервере - Правила форума
http://www.linux.org.ru/

Rambler's Top100 Рейтинг@Mail.ru