Re[8]: про многословность
От: · Великобритания  
Дата: 02.02.25 13:00
Оценка:
Здравствуйте, rg45, Вы писали:

r> ·>OpenJDK есть.

r> Ну это JDK. А сам язык? Как мне написать мой первый "Hello World"?
Ну вроде там все доки это reference, а не tutorials. А учебники уж очень разные. Смотря какой ты "Hello World" хочешь, консольный, или гуй, или веб, или rest-сервис в докер и т.п.
avalon/3.0.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[9]: про многословность
От: rg45 СССР  
Дата: 02.02.25 13:03
Оценка:
Здравствуйте, ·, Вы писали:

·>Ну вроде там все доки это reference, а не tutorials. А учебники уж очень разные. Смотря какой ты "Hello World" хочешь, консольный, или гуй, или веб, или rest-сервис в докер и т.п.


Конечно, все это references. Только для C++ есть references по языку, для Java нету.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 02.02.2025 13:03 rg45 . Предыдущая версия .
Re[10]: про многословность
От: · Великобритания  
Дата: 02.02.25 13:07
Оценка:
Здравствуйте, rg45, Вы писали:

R>·>Ну вроде там все доки это reference, а не tutorials. А учебники уж очень разные. Смотря какой ты "Hello World" хочешь, консольный, или гуй, или веб, или rest-сервис в докер и т.п.

R>Конечно, все это references. Только для C++ есть references по языку,
Который ты имеешь в виду?

R>для Java нету.

Ну можно выкачать в оффлайн ~1000 страниц пдфку JLS... Но это не про hello world...
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[11]: про многословность
От: rg45 СССР  
Дата: 02.02.25 13:17
Оценка:
Здравствуйте, ·, Вы писали:

R>>Конечно, все это references. Только для C++ есть references по языку,

·>Который ты имеешь в виду?

Вот этот, например: https://devdocs.io/cpp/language. И не только это, там много ещё есть интересного во вкладках "Language", "Keywords", "Metaprogramming", etc, что относится сугубо к языку.

Среди прочего, есть документация по функции main: https://devdocs.io/cpp/language/main_function, которой более чем достаточно, для написания "Hello World".

R>>для Java нету.

·>Ну можно выкачать в оффлайн ~1000 страниц пдфку JLS... Но это не про hello world...

Ну это-то понятно, что много чего можно выкачать.
--
Справедливость выше закона. А человечность выше справедливости.
Re[12]: про многословность
От: · Великобритания  
Дата: 02.02.25 13:37
Оценка:
Здравствуйте, rg45, Вы писали:

R>·>Который ты имеешь в виду?

R>Вот этот, например: https://devdocs.io/cpp/language. И не только это, там много ещё есть интересного во вкладках "Language", "Keywords", "Metaprogramming", etc, что относится сугубо к языку.
А, ну аналог jls, да.

R>Среди прочего, есть документация по функции main: https://devdocs.io/cpp/language/main_function, которой более чем достаточно, для написания "Hello World".

на это похоже https://docs.oracle.com/javase/specs/jls/se21/html/jls-1.html#jls-1.2

R>·>Ну можно выкачать в оффлайн ~1000 страниц пдфку JLS... Но это не про hello world...

R>Ну это-то понятно, что много чего можно выкачать.
Угу... И неясно накой этот devdocs.io. Док слишком много, чтобы слить все в одну кучу, да так чтобы в оффлайн кеш браузера уместилось. И вот https://devdocs.io/offline "вдохновляет"

Note: your browser may delete DevDocs's offline data if your computer is running low on disk space and you haven't used the app in a while.

но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[13]: про многословность
От: rg45 СССР  
Дата: 02.02.25 13:45
Оценка:
Здравствуйте, ·, Вы писали:

·>Угу... И неясно накой этот devdocs.io. Док слишком много, чтобы слить все в одну кучу, да так чтобы в оффлайн кеш браузера уместилось. И вот https://devdocs.io/offline "вдохновляет"

·>

Note: your browser may delete DevDocs's offline data if your computer is running low on disk space and you haven't used the app in a while.


Хотели как лучше.
--
Справедливость выше закона. А человечность выше справедливости.
Re[14]: про многословность
От: ononim  
Дата: 02.02.25 17:19
Оценка: :)
R>·>

Note: your browser may delete DevDocs's offline data if your computer is running low on disk space and you haven't used the app in a while.

R>Хотели как лучше.
как лучше это chm, технология забытой цивилизации
Как много веселых ребят, и все делают велосипед...
Re[3]: про многословность
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 02.02.25 19:55
Оценка:
Здравствуйте, T4r4sB, Вы писали:

N>>Он стремится туда же, с мелкими поправками. И это правильно.


TB>Что правильного в том, что я каждый раз заново гуглю, чтобы измерить время либо добавить в программу ГПСЧ? Потому что эту идеологически выдержанную херабору невозможно блин запомнить.

TB>В отличие от
TB>
TB>srand(time(NULL));
TB>...
TB>int i = rand() % n;
TB>...
TB>


АПИ стало гораздо шире, а не в именах дело.

Раньше был единственный способ получать рандомы (кстати, а способ/алгоритм был зафиксирован в стандарте?), а сейчас куча разных алгоритмов рандомов, и всё в стандарте описано
Маньяк Робокряк колесит по городу
Re[5]: про многословность
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 02.02.25 20:09
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>https://devdocs.io/

_NN>Можно скачать локально.
_NN>Умеет не только C++.

Клёвая тема. Только про bat-файлы ничего нет
Маньяк Робокряк колесит по городу
Re[2]: про многословность
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 02.02.25 20:10
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Очень много символов. Всем нравится называть функцию open или close. Поэтому приходится использовать или длинные имена, или пространства имён. Но поскольку в мире C++ стоит бардак полный, используется и то и другое.


В мире C++ как раз порядок. Бардак же от совместимости с сишечкой
Маньяк Робокряк колесит по городу
Re[6]: про многословность
От: _NN_  
Дата: 03.02.25 10:53
Оценка:
Здравствуйте, rg45, Вы писали:

R>Здравствуйте, _NN_, Вы писали:


_NN>>Здравствуйте, cppguard, Вы писали:


_NN>>https://devdocs.io/

_NN>>Можно скачать локально.
_NN>>Умеет не только C++.

R>А джавы и сишарпа нету. Как же так?


C .NET всё сложно в плане лицензии и в плане возможности вытащить в удобном формате

https://github.com/dotnet/docs/issues/397

There's still a major blocker for me to add your docs to DevDocs, in that I'd need a static version to scrape/convert into DevDocs format locally (https://docs.microsoft.com/en-us/dotnet/api/ doesn't work / isn't crawlable without JavaScript + the documentation is huge, so scraping the website isn't really an option), but this is unrelated to this GH issue, so I'll close it.

http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[6]: про многословность
От: _NN_  
Дата: 03.02.25 18:06
Оценка: 34 (3)
Здравствуйте, Marty, Вы писали:

M>Здравствуйте, _NN_, Вы писали:


_NN>>https://devdocs.io/

_NN>>Можно скачать локально.
_NN>>Умеет не только C++.

M>Клёвая тема. Только про bat-файлы ничего нет


Для них отдельный сайт: https://ss64.com/nt/
Надо проверить, что там с лицензией если можно добавить на devdocs.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[7]: про многословность
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 03.02.25 20:31
Оценка:
Здравствуйте, _NN_, Вы писали:

M>>Клёвая тема. Только про bat-файлы ничего нет


_NN>Для них отдельный сайт: https://ss64.com/nt/

_NN>Надо проверить, что там с лицензией если можно добавить на devdocs.

О, спасибо. Там вроде и про синтаксис есть
Маньяк Робокряк колесит по городу
Re[5]: про многословность
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 04.02.25 06:01
Оценка:
Здравствуйте, ononim, Вы писали:

N>>От замены std::chrono::duration::seconds на std::chr::dur::sc или даже std.chr.dur.sc легче не станет.

O>std::age::sec а duration не нужен,

"duration не нужен" — это, как говорят автомобилисты, до первого столба, когда у тебя вдруг где-то образуется 4050 год потому, что неправильно применены объекты на сложение, или 1 год вдруг преобразовался к юлианскому календарю и сократился на 10 дней потому, что вычитание.
Кроме длительности (duration) нужен ещё и период — как сделали в RFC 9581.

chrono, конечно, сложноват, но не в этом месте.

O>и хорошо что shared_ptr придумали до комитета, иначе был бы std::pointer::reference_counted::strong и std::pointer::reference_counted::weak,


Ну, такие длинные сократили бы. Например, std::smartptr::shared.

O> но к сожалению с hash_map это не прокатило, трындючие ящики таки утрындели приверженцев здравого смысла.


cppreference.com переадресовывает hash_map в unordered_map. Ты что имел в виду?
The God is real, unless declared integer.
Re: про многословность
От: · Великобритания  
Дата: 04.02.25 08:45
Оценка:
Здравствуйте, ononim, Вы писали:

o> Вот раньше все было кр.и.пнтно: std, fopen, open, malloc/realloc.

Раньше было лучше!

o> А теперь: std::unordered_map

Чем hash_map не устроил, неясно.

o> std::chrono::duration::seconds

Вообще-то оно std::chrono::seconds. Вполне ок.

o> std::strong_ordering::greater

А надо как?

o> Ватафак? Что за словоблудие?

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

А какая вообще разница? При написании есть IDE, при чтении читаешь всё равно не буквы, а слова.
avalon/3.0.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[6]: про многословность
От: ononim  
Дата: 04.02.25 09:12
Оценка: 1 (1)
N>"duration не нужен" — это, как говорят автомобилисты, до первого столба, когда у тебя вдруг где-то образуется 4050 год потому, что неправильно применены объекты на сложение, или 1 год вдруг преобразовался к юлианскому календарю и сократился на 10 дней потому, что вычитание.
duration как самостоятельный объект — ок (хотя название конечно опять же — period было бы читабельнее и писабельнее), а вот duration в качестве скоупа для seconds — лишнее. Создается впечатление что писатели STL забыли что они пишут не код для самих себя, а бибилиотеку для людей, которым вобщемто начхать на ее внутренности.
UPD: мне тут написали
Автор: ·
Дата: 04.02.25
что есть есть и альяс std::chrono::seconds ну чтож, вот она, борьба бобра с ослом в пределах отдельно взятого комитета. Еслиб они документировали в первую очередь понятные альясы, а многоэтажные оставляли для внутреннего пользования — мир был бы чуточку лучше.


O>>и хорошо что shared_ptr придумали до комитета, иначе был бы std::pointer::reference_counted::strong и std::pointer::reference_counted::weak,

N>Ну, такие длинные сократили бы. Например, std::smartptr::shared.
Оптимист.

O>> но к сожалению с hash_map это не прокатило, трындючие ящики таки утрындели приверженцев здравого смысла.

N>cppreference.com переадресовывает hash_map в unordered_map. Ты что имел в виду?
Я имел ввиду то, что hash_map вначале появился в бусте. И shared_ptr вначале появился в бусте, но при принятии в стандарт — наименование первого показалось черезчур коротким некоторым любителям длинный речей. А shared_ptr повезло больше.
Верните в комитет прагматиков, которые придумали названия std::map, std::set, std::iota, std::cerr и уберите любителей потрындеть. Изза них плюсы сильно отрываются от реальных проблем. Нейминг — это лишь одна и наиболее очевидная грань этой проблемы.
Как много веселых ребят, и все делают велосипед...
Отредактировано 04.02.2025 9:34 ononim . Предыдущая версия . Еще …
Отредактировано 04.02.2025 9:34 ononim . Предыдущая версия .
Re[2]: про многословность
От: ononim  
Дата: 04.02.25 09:20
Оценка:
·>А какая вообще разница? При написании есть IDE, при чтении читаешь всё равно не буквы, а слова.
std::strong_ordering Foo::operator <=>(const Foo &other) const
{
    int r = name.compare(other.name);
    if (r != 0) {
        return (r < 0) ? std::strong_ordering::less : std::strong_ordering::greater;
    }
    return std::strong_ordering::equal;
}


std::cmp Foo::operator <=>(const Foo &other) const
{
    int r = name.compare(other.name);
    if (r != 0) {
        return (r < 0) ? std::less : std::greater;
    }
    return std::equal;
}


ну вот то есть совсем нет никакой разницы в читабельности обоих вариантов?
У меня на прошлой работе как то контора купила старпатчик у которых в проекте были пятиэтажные нэймспейсы, такая себе либа-хрущевка. Вероятно те стартаперы со временем пробрались в С++ комитет.
Как много веселых ребят, и все делают велосипед...
Re[3]: про многословность
От: · Великобритания  
Дата: 04.02.25 10:15
Оценка:
Здравствуйте, ononim, Вы писали:

O>·>А какая вообще разница? При написании есть IDE, при чтении читаешь всё равно не буквы, а слова.

O>std::strong_ordering Foo::operator <=>(const Foo &other) const
O>std::cmp Foo::operator <=>(const Foo &other) const

O>ну вот то есть совсем нет никакой разницы в читабельности обоих вариантов?
Если тебе так глаза мозолит, чем using не угодил? Но я как-то не вижу принципиальной разницы. Если ещё учесть в реальности вместо Foo будет какой-нибудь InstrumentClassifier (или ты предложишь писать InstrmClsfr?), то вообще мелочи.

А как ты предлагаешь обозвать всякие weak_ordering и partial_ordering?

Кстати, вот const глаза мозолит больше, ибо разумной инфы никакой, но писать надо.

O>У меня на прошлой работе как то контора купила старпатчик у которых в проекте были пятиэтажные нэймспейсы, такая себе либа-хрущевка. Вероятно те стартаперы со временем пробрались в С++ комитет.

Ну не надо про крайности, а то пошлём тебя сапёром работать. Там в моде 3-4 буквенные идентификаторы на всё. Вот увидишь KNA1, KNVS, VTTK, KONH, T001L и сразу так порадуешься.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[7]: про многословность
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 04.02.25 10:38
Оценка:
Здравствуйте, ononim, Вы писали:

N>>"duration не нужен" — это, как говорят автомобилисты, до первого столба, когда у тебя вдруг где-то образуется 4050 год потому, что неправильно применены объекты на сложение, или 1 год вдруг преобразовался к юлианскому календарю и сократился на 10 дней потому, что вычитание.

O>duration как самостоятельный объект — ок (хотя название конечно опять же — period было бы читабельнее и писабельнее), а вот duration в качестве скоупа для seconds — лишнее. Создается впечатление что писатели STL забыли что они пишут не код для самих себя, а бибилиотеку для людей, которым вобщемто начхать на ее внутренности.

Вопрос дискретности представления временны́х параметров вообще-то существенный. Параметризовать, например, секундами и наносекундами — совершенно разный результат по цене. Особенно это было важно при создании библиотеки, да и сейчас — на 32-битной платформе оперировать 64-битными целыми сложно, а если потребуется ещё толще — тем более.
"Скоуп" в моей записи был не прямо из chrono, там дискрет представления — параметр шаблона.

O>UPD: мне тут написали
Автор: ·
Дата: 04.02.25
что есть есть и альяс std::chrono::seconds ну чтож, вот она, борьба бобра с ослом в пределах отдельно взятого комитета. Еслиб они документировали в первую очередь понятные альясы, а многоэтажные оставляли для внутреннего пользования — мир был бы чуточку лучше.


До определённой степени так и есть.

std::chrono::seconds(C++11) duration type with Period std::ratio<1>


O>>> но к сожалению с hash_map это не прокатило, трындючие ящики таки утрындели приверженцев здравого смысла.

N>>cppreference.com переадресовывает hash_map в unordered_map. Ты что имел в виду?
O>Я имел ввиду то, что hash_map вначале появился в бусте. И shared_ptr вначале появился в бусте, но при принятии в стандарт — наименование первого показалось черезчур коротким некоторым любителям длинный речей. А shared_ptr повезло больше.
O>Верните в комитет прагматиков, которые придумали названия std::map, std::set, std::iota, std::cerr и уберите любителей потрындеть. Изза них плюсы сильно отрываются от реальных проблем. Нейминг — это лишь одна и наиболее очевидная грань этой проблемы.

К unordered_map у меня другие претензии, посерьёзнее, чем просто именование. По-нормальному это должен был быть концепт, лишённый всех специфических граблей типа перебора корзин.
Стандартизация того, что корзины 1) есть, 2) их только один набор — очень жёстко зажимает реализацию до closed addressing hash map с рывочной пересборкой. По эффективности получается амортизированное O(1), но не стабильное O(1), как было раньше в Dinkumware и вслед Microsoft STL. А это значит, что критичные к постоянству времени приложения не могут его использовать.
The God is real, unless declared integer.
Re[3]: про многословность
От: rg45 СССР  
Дата: 04.02.25 11:16
Оценка:
Здравствуйте, ononim, Вы писали:

O>·>А какая вообще разница? При написании есть IDE, при чтении читаешь всё равно не буквы, а слова.

O>
O>std::strong_ordering Foo::operator <=>(const Foo &other) const
O>{
O>    int r = name.compare(other.name);
O>    if (r != 0) {
O>        return (r < 0) ? std::strong_ordering::less : std::strong_ordering::greater;
O>    }
O>    return std::strong_ordering::equal;
O>}
O>


O>
O>std::cmp Foo::operator <=>(const Foo &other) const
O>{
O>    int r = name.compare(other.name);
O>    if (r != 0) {
O>        return (r < 0) ? std::less : std::greater;
O>    }
O>    return std::equal;
O>}
O>


O>ну вот то есть совсем нет никакой разницы в читабельности обоих вариантов?

O>У меня на прошлой работе как то контора купила старпатчик у которых в проекте были пятиэтажные нэймспейсы, такая себе либа-хрущевка. Вероятно те стартаперы со временем пробрались в С++ комитет.

Так заняты уже std::less, std::greater и std::equal. И имеют совсем другую семантику. Для компактности записи полно всяких средств: алиасы типов и пространств имен, а также using declarations (просто using std::strong_ordering). От того, что ты напишешь дополнительное объявление, твой код никак не проиграет, а только выиграет. Делая такие объявления, ты чётче очерчиваешь границы между "что" и "как".

Я уже молчу о том, что этот оператор вообще должен реализоваться в одну строчку при нормальном дизайне:

auto Foo::operator <=>(const Foo &other) const { return name <=> other.name; }
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 04.02.2025 14:07 rg45 . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.