LINUX.ORG.RU

Человеческая замена C для своих задач

 ,


0

6

Хочется найти простой кроссплатформенный компилируемый язык для программирования всякой мелочи для себя. Отправной точкой можно назвать C, но хочется поменьше рутины, возможностей на ровном месте выстрелить в ногу и наличия удобных базовых структур, вроде строк, динамических массивов и прочих списков. В кандидатурах сейчас пока C++ (не хочется лезть в дебри именно плюсов, с другой стороны писать в духе C с классами кажется как-то не комильфо), Pascal (начинал с Delphi когда-то, но уже почти не помню), Vala (тыкал немного, напрягает, что надо тянуть Glib и с поддержкой + кроссплатформой не очень), Go, D (на первый взгляд тоже ситуация с поддержкой и библиотеками не радует), Rust (какой-то инопланетный, но идея с управлением памятью интересна).


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

Цитируй уже стандарт по части ABI. Заодно можешь назвать размер long. Вперед

anonymous
()
Ответ на: Я уже написал почему так. от Moisha_Liberman

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

А нет, тогда не перепутаны

anonymous
()

Язык D.

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

kcore.io

Навскидку прямо libevent. Чуть хуже libhttpd. Если не смущает необходимость городить http-parser, то libev/libuv.

Пойдёт?

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

Никакого выигрыша utf-32 нидает, наоборот, только траблы с занимаемой памятью. Но в принципе, почему нет? wchar_t и вперед.

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

Конечно есть. Хреновый код на питоне - вот и вся причина

anonymous
()
Ответ на: А! Вспомнил! Вспомнил! от Moisha_Liberman

Уже и сам не помню. Но RazrFalcon говорил что не понимает выражения вида:

(int*)(*p++) = *a;
И недавно была его тема с битовыми операциями...

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

А что, хочешь сказать, это не так?

Я в сортах говна не разбираюсь. Покуда Китай нас не захватил, КОИ8-Р за глаза хватает.

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

А что, хочешь сказать, это не так?

Да.

Я в сортах говна не разбираюсь. Покуда Китай нас не захватил, КОИ8-Р за глаза хватает.

У них же своя кодировка, и они хейтят utf-8 из за отсутствия там каких то древних иероглифов.

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

У них же своя кодировка

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

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

Вообще, КОИ8 - тоже плохая кодировка, т.к. буквы идут не в алфавитном порядке, что значительно усложняет сортировку.

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Deleted

Чтобы читать войну и мир

Чувак, на кой мне хрен читать буквы с умляутами, если я не знаю французского? И да, «война и мир» — тупейшее извращение из тех, что заставляют читать в школе! Хуже только дебилизм от дерьмократа Солженицына!

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

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

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

Исторически так сложилось: у нас все компы на работе в КОИ8, поэтому и я себе такую кодировку поставил, чтобы если кто на файлопомойке сподобится файл кириллицей обозвать, было понятно, что там.

Вот только твои представления неправильные: посмотри на таблицу cp866 или cp1251! Там буквы не идут в алфавитном порядке!!!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Deleted

Блин, еще раз: я уже несколько раз говорил, что хрюникод нужен. Но нужен он в pdf-файлах!!! Я и сам частенько употребляю буквы вне кириллицы/латинницы: те же греческие и еврейские символы в формулах, всякие седили-умляуты в фамилиях в списках литературы, да тупо букву «йо»! Но все это не требует мне иметь хрюникода в консольке, т.к. генерируется латеховскими макросами. Та же «йо» пишется вот так: \«e. Если я хочу эту букву, которая отсутствует на клавиатуре (т.к. я заменил ненужную йо на тильду и апостроф, которые и в русской раскладке очень часто нужны), написать в вебе, то пользуюсь compose: ēжик.

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

\«e

Блин, почему-то частично перестал работать скрипт для засаленной обезьяны...

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

Anyway, там более одного измерения. Которые в одномерные коды не поместить. Hint: алфавитная сортировка

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

там более одного измерения

Только в языках с диакритическими знаками. В том же немецком ß при сортировке является простой буквой s и это убивает любую логику!

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

Да нет, я о вот об этом:

A...
B...
C...
a...
b...
c...
A...
a...
B...
b...
C...
c...
Это только первое, что в голову пришло. А вообще их(правил сортировки) довольно много

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

Если честно...

То я сомневаюсь в том, что Вы в принципе программист. Кодераст? Возможно, но программист это вряди.

Если мне приходится объяснять что различные абстракции имеют различное выражение в коде. И тот же стек может где-то быть просто стеком (хер знает для чего), а где-то может быть хранилищем и обработчиком данных об отказах. Если мы разматываем отказы от более новых к более старым. А где-то его в принципе может не быть, т.к. мы просто храним их и обрабатываем в очереди. И очевидно что того же стека может не быть в проекте в принципе.

Исходя из этого, мне на хрен не нужен ни говноязык, ни говнореализации ненужных мне вещей.

С даёт простые типы данных и либо из простых типов данных делает абстрактные и их использует, либо идёт на форум скулить о «плохом С», где в рантайм не завезли очередную порцию говна.

И по поводу RAII и по поводу GC, сразу ответ. Это для инвалидов, которые не контролируют в принципе ничего. Не удивлюсь если они до своего возраста в памперсах ходят потому что ссут и срут неконтролируемо.

А теперь обратите внимание, что ТС ничего про микроконтроллеры не говорил.

А должен был? И что, есть какая-то разница для кода на С где он запущен? Т.е., на микроконтроллере это один С, а вот постгрес написан на каком-то другом С? А libpq к постгресу то уже наверное третий С?

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

А должен был? Писать? Для меня очевидно что эта игра не стоит свеч. Все рекомендации по поводу strlen я Вам уже выдал. Могу только добавить что Вам следует сделать strace/ltrace на своём коде на D и сильно удивиться. Мне же ни говнокод, ни прокладки к рантайму в Линукс ненужны.

Кстати, о рантайме. Тут ещё вопрос к какому именно, т.к. есть glibc, musl, uClibc. По скорости они примерно сопоставимы, а вот размеры и функциональное наполнение малость разные. Скажите, как D будет в системе с musl? А с uClibc? Если ответ «ни как», то зачем мне прекрасная программа, которая не работает?

Как и, например, от Docker-а, написанного на Go. Или от GCC и clang-а, написанных на C++. Или Chrome на том же C++.

Я задавал чёткий и ясный вопрос насчёт D. Где в выше приведённом Вами списке хоть что-то на D?

И с чего Вы взяли что я например прусь от того же докера? Ваша генерация погромистов просто хронические идиоты, которые действительно не в состоянии использовать простые средства. Ахах! Нам нужин докер. Поставили. Хееерррак! И начинается. А теперь нам нужна оркестровка и, как следствие кубернетикс. В этой точке я обычно заканчиваю разговор словами «Вымуволены», т.к. построенная Вами говно система будет жрать ресурсы (для виртуализации есть более щадящие их технологии) и за эти ресурсы плачу бабки таки я, а не Вы. И платить за тупость, глупость и безграмотность я пас.

Если я выбираю язык

А я выбрал язык. Напоминаю А. Конан-Дойля, «Этюд в багровых тонах»: Видите ли, — сказал он, — мне представляется, что человеческий мозг похож на маленький пустой чердак, который вы можете обставить, как хотите. Дурак натащит туда всякой рухляди, какая попадется под руку, и полезные, нужные вещи уже некуда будет всунуть, или в лучшем случае до них среди всей этой завали и не докопаешься. А человек толковый тщательно отбирает то, что он поместит в свой мозговой чердак. Он возьмет лишь инструменты, которые понадобятся ему для работы, но зато их будет множество, и все он разложит в образцовом порядке.

А, так вы идиот в короне. Ну теперь понятно.

О, Господи! Осталось понять только то, в каком ГПТУ Вам выдали справку об образовании, которую Вы почему-то считаете дипломом программиста. И дело в шляпе.

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

Блин...

В своё время в стране было аж шесть, если я не ошибаюсь, кодировок... Даёшь седьмую? Может, unicode как одну, да и хрен с ним, с остальным? =)

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

Ну тады "ой".

Барин знает чё с кобылой делать. Наше дело — хвост держать. =)))

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

Но постепенно пришел к тому что C++ однозначно лучше. И мне интересно, что может привести человека, знающего и то и другое, к си.

Ничего. Если человек знает C++, он не станет писать на Си. По крайней мере добровольно.

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

Станет. Я знаю C++, но иногда попадаются задачи, которые пишу на C. Нет, я не пердолюсь со строками и контейнерами, задачи такие, что они там совсем не нужны(хватает массивов с хардкодными размерами)

anonymous
()
Ответ на: Если честно... от Moisha_Liberman

И по поводу RAII ... сразу ответ. Это для инвалидов, которые не контролируют в принципе ничего

RAII-то чем не угодил? Неужели вам нравится писать однообразные код по закрытию ресурсов? И вы не ошибаетесь что ли? А при работе с несколькими ресурсами что делаете? goto?

RAII и в Си бы пригодился.

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

Захватил, Эдуард. Куплял в прошлом году маршрутизатор, а он на китайском весь. Пришлось разбираться в иероглифах (не такие уж они и сложные).

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

Я знаю C++

Точно?

задачи такие, что они там совсем не нужны

Ну и зачем писать на Си? Что это дает-то?

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

Если переходить на хрюникод, то на utf-32, а utf-8 пусть безмозглые обезьяны используют.

Да ладно тебе и 32 и 16 и 8 всегда будут непъёмными для тех дурочков, кто пишет на этом говне — Си. Сколько лет прошло, а у этих придурков только рефлекс: юникод -> icu. И это максимум, который их стремительно пустеющий мозг может выдать уже просто рефлекторно, как после многих лет дресировки вопреки деменции.

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

Да проще же всё!

Не всегда надо даже освобождать ту же память. Если можно использовать alloca(), например, то почему бы и нет?

С другой стороны, уже давным-давно использую в работе syntastic и splint в vim/gvim (ща... начнётся...).

Так мне даже думать особо ненужно. Как только я сохраняю файл исходников, ещё до компиляции splint прочёсывает его на ошибки. Находит косяки даже в подключаемых сторонних файлах. Редко, но бывает.

Зачем язык-то усложнять, не понимаю?

Ну и правило «сделал malloc(), сразу сделай free()», тоже работает.

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

На С оно считает за пару секунд

Без интрисиков это говно вообще ничего не может. Удивительно, но кога обычный человек имеет ввиду кроссплатформенность, то имеет ввиду один и тот же код на всех платформах. В то время как программист Си, в своём безумстве, думает, что бесконечные тупые и неудобные, и ннчитаемые затычки из макросов повсюду — это кроссплатформенность.

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

выражения вида: (int*)(*p++) = *a;

Такие выражения становятся понятными, если вспомнить, что Си — тупое дерьмо. Всё сразу встаёт на места.

З.Ы.: кто пишет такой код, тот и есть макака.

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

Да, какой-то упоротый анонизмус попался ☺ Царя на него нет!

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

В С меньше...

Рычажков и кнопочек, за которые так любят дёргать code monkeys дёргать, не понимая что они делают и зачем. Только потому, что они прочли только что книжку, где данный шаблон расхваливался как чудодейственный.

На С просто пишешь как надо, без изъ... без «изысков» короче.

Тот же механизм templates может немало горя принести при его безголовом с точки зрения архитектуры применении.

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

Нет, в консоли есть место только 8-битной кодировке.

Это ограничение забито в восьмом бите мозга некоторых пертов.

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