LINUX.ORG.RU

Есть что-то лучше C++?

 , ,


0

3

Например был ведь язык D эдакая эволюция C++ но видимо сдулся, так как о нем не слышно не дышно, слышно только про старичка C++. Неужели за все время со дня создания C++ ничего лучше так и не придумали?

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

Ну так вопящие никогда не понимали, зачем C++ нужен.

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

Он не смог в ООП, простейшая задача по отображению DOM дерева или бизнес доменов на его структуры превращается в вырвиглазной и неэффективный код.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от th3m3

Rust же.

Полностью солидарен с предыдущем оратором.

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

Практически во всех. В 90% use case' ов выбор делается подбросом монетки.

LamerOk ★★★★★
()

Что угодно лучше C++. Даже javascript, даже java, даже basic.

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

Кое-где пересекаются, на сервер-сайде, например. Думаю используя похожую на раст концепцию лайфтаймов, посыпав это дело метаинформацией и смарт анализом кода (скорее всего ЯП привязанный к IDE), можно избавиться от GC и ручным управлением памяти. Получая классический ООП ЯП с простым синтаксисом как в джаве.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от foror

Получая классический ООП ЯП с простым синтаксисом как в джаве.

Не очень понятно, чем плох GC. Ведь GC вполне себе существует и в языках, которые компилируются в нативный код: Haskell, OCaml, Go, D. Если хочется продвинутого ООП с простым синтаксисом, то есть Eiffel. Тоже с GC.

Без GC и в нейтив есть Ada, говорят туда даже ООП завезли. Лет 10 назад, если не больше.

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

Многие люди этого всего даже не замечают в своей работе. Интересно было именно про ваш опыт узнать, где и как вам GC мешает.

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

GC мешает

Ага, особенно «на сервер-сайде») Это какая то новая религия вроде современной шизы проклинать ООП. Правда уже выяснилось, что без ООП таки тяжко.

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

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

Может в будущем можно будет перенести рантайм GC и это не скажется на значительном увеличении клиентского кода и оверхеда по ресурсам системы. А может и скажется. Неприятно находиться в такой неопределенности.

Опять же из-за GC сложность в портировании джава кода под iOS. Еще говорят для разработчиков игр он не всегда приемлим. Мне это пока не нужно, но на будущее у меня есть виды и на эту область )

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

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

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от eao197

есть Ada, говорят туда даже ООП завезли. Лет 10 назад, если не больше.

20+, Ada 95. Проблема (одна из проблем) Ады в том, что нет бесплатного компилятора, применимого для коммерческой разработки.

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

Правда уже выяснилось, что без ООП таки тяжко.

Забыл ещë сказать, что это «общеизвестно», «давно доказано», «всем очевидно» и «не требует доказательств».

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

Но думаю он сильно мешает популярным проектам с большим числом посетителей.

Так сильно мешает, что гугл аж запилил свой язык без gc о щи, там же консервативный gc. Вот ламерье.

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

гугл аж запилил свой язык без gc о щи, там же консервативный gc. Вот ламерье.

Ламерье - это те, кто считает «раз гугль сделал - значит, правильно и круто».

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

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

bread
()

Питон уже предлагали?

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

Проблема (одна из проблем) Ады в том, что нет бесплатного компилятора, применимого для коммерческой разработки.

Разве до сих пор? Там же давно уже ввели GNAT-Modified GPL (AdaCore). А потом в gcc (FSF Ada) вообще привычный GCC Runtime Library Exception (Debian Ada Policy):

The FSF variant of GNAT. This is the Ada front-end which has been distributed as part of GCC since version 3.1. From GCC 3.1 to 4.3, the license terms of the run-time library are the GNAT-Modified GPL. For 4.4 and later, the licence terms are GPL version 3 with GCC Runtime Library Exception which is similar in spirit to the GMGPL.

The GNAT-Modified GPL is the GPL version 2 with the following text added to each source file:

As a special exception, if other files instantiate generics from this unit or you link this unit with other files to produce an executable, this unit does not by itself cause the resulting executable to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU Public License.

Starting with GCC 4.4, the library source files grant the GCC Run-time library exception by means of the following language:

As a special exception under Section 7 of GPL version 3, you are granted additional permissions described in the GCC Runtime Library Exception, version 3.1, as published by the Free Software Foundation.

Thus, the GNAT-Modified GPL permits the distribution of proprietary software linked with the GNAT run-time library, libgnat. The pure GPL disallows this, as any binary linked with a GPL library must also be distributed under GPL or not at all. This does not apply to your source text: your source program is not linked with libgnat, therefore you can distribute it under whichever licensing terms you choose, even non-disclosure agreements.

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

Проблема (одна из проблем) Ады в том, что нет бесплатного компилятора, применимого для коммерческой разработки.

Разве до сих пор?

http://libre.adacore.com/tools/gnat-gpl-edition/faq/#licensing

«I would like to release my software under the ABC license, which is incompatible with the GPL. What should I do?

If the ABC license is a Free Software license according to the FSF, then read the following Q&A. If the ABC license is not a Free Software license then it is the intention of the GPL distribution of GNAT to restrict your freedom. For distribution of proprietary software, we suggest and recommend the use of GNAT Pro.»

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

Но это не касается FSF Ada, т.е. то, что в gcc во всех GNU/Linux дистрибутивах, MacOS homebrew, mingw-w64/msys2 под виндой? Чего из нужного не хватает там, но есть в AdaCore?

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

А что у Гугла популярного в продакшене на нем? На хабре помню проходили статьи о его проблемах c GC при больших нагрузках на сервер.

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

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от gag

То есть ты считаешь, что GNAT в составе GCC и GNAT (именно GNAT, не GNAT Pro), о котором говорится на сайте AdaCore - это два разных GNAT, с разными лицензионными ограничениями?

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Да. Разумеется, AdaCore не концентрирует на этом внимание. А gnat в gcc был с GMGPL (т.е. тоже используй где хочешь), а потом удалось установить и там стандартную Runtime Library Exception.

gag ★★★★★
()
Последнее исправление: gag (всего исправлений: 1)
Ответ на: комментарий от gag

То есть ты считаешь, что GNAT в составе GCC и GNAT (именно GNAT, не GNAT Pro), о котором говорится на сайте AdaCore - это два разных GNAT, с разными лицензионными ограничениями?

Да.

И ты почерпнул эту информацию... откуда именно?

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

Это какая то новая религия вроде современной шизы проклинать ООП

Совать везде ООП — вот где была шиза. Благо, последние годы хайп вокруг ООП и паттернов спал.

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

Из разных источников. Вот, например, переход с GMGPL на Runtime Library Exception:

Update/Switch to GPLv3 run-time license (Arnaud Charlet <charlet AT adacore DOT com> 01.08.2011)

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

Совать везде ООП — вот где была шиза.

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

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

А вот ещё 2-мя годами ранее:

Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. (09.04.2009)

https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=6bc9506f51c864af73250f5e6c99da2...

------------------------------ gcc/ada/ChangeLog ------------------------------
index 12633e79b14..050b00b7207 100644
@@ -1,3 +1,1130 @@
+2009-04-09  Nick Clifton  <nickc AT redhat DOT com>
+
+	* adadecode.h: Change copyright header to refer to version
+	3 of the GNU General Public License with version 3.1 of the
+	GCC Runtime Library Exception and to point readers at the
+	COPYING3 and COPYING3.RUNTIME files and the FSF's license web
+	page.
+	* 9drpc.adb: Likewise.
+	* a-assert.adb: Likewise.

[...]

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

А вот добавление Ады в gcc с исключением GMGPL:

New language: Ada (Richard Kenner <kenner AT vlsi1.ultra.nyu DOT edu> 02.10.2001)

Действительно из универа Нью-Йорка. А AdaCore, согласно вики, основали подрядчики, которым была заказана разработка свободного компилятора.

Так что Аду из gcc можно было использовать всегда и для закрытых приложений, так же как и другие языки в составе gcc.

gag ★★★★★
()
Последнее исправление: gag (всего исправлений: 1)
Ответ на: комментарий от foror

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

Практика показывает, что выкидывание GC не делает код проще.

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

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

SinglePage Web Application

Но нужно ли это покрывать?

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

Аду ни разу не трогал.

Я тоже. Когда-то давно думали, не использовать ли нам Аду, но как-то упустили разницу между GNAT GPL и GNAT FSF.

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

Практика показывает, что выкидывание GC не делает код проще.

А не нужно проще, нужно как сейчас, может чуть сложнее, а по возможности нивелировать эту доп. сложность используя специальную IDE.

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

используя специальную IDE

Язык привязанный к IDE - извращение.

PS: для раста хотят добавить «подсветку» лайфтаймов в IDE (vscode/idea), но как оно будет выглядеть - не понятно.

RazrFalcon ★★★★★
()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Язык привязанный к IDE - извращение.

Нет. Это будущее. Тот же Smalltalk просто опередил своё время. А Delphi показала какой может быть успех у подобного ЯП.

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

И оба мертвы, ага.

Потому что мелко плавали.

Вон, Си привязан к целой операционной системе, даже в принципе к концепции их построения. Хочешь нормально писать на Си в своей операционке - прикидывайся той, под которую Си создавали. И ничего - жив.

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

Вон, Си привязан к целой операционной системе

Это не Си приязан к операционой системе, а операционная система к Си. А привязываться к IDE - путь на кладбище.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Это не Си приязан к операционой системе, а операционная система к Си. А привязываться к IDE - путь на кладбище.

Все там будем.

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