LINUX.ORG.RU

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

 ,


0

6

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


Ответ на: Namespace isolation... от Moisha_Liberman

Еноут Хеллоувоурт

Это для тех говнокодеров, которые не понимают что такое «модульное программирование» и что такое «область видимости». И не знают какие они бывают в том же С.

Это так пока ты не выходишь за рамки дошкольной поделки.

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

Преклоняюсь перед Вашим опытом.

.

Сразу видно знатока, чё уж... =)))

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

Посмотри на С++ и на то, сколько костылей добавляется. Всё это существует для обхода фундаментальных проблем raii. Добавление поддержи операций с неинициализированной памятью и прочее.

Если совсем просто. Инициализировать/удалять/делать что-то ещё с объекта - почти всегда выгоднее пакетно. Допустим, с дефолтным raii-говном, где каждый объект следит за своей памятью - ты будешь обходить все мусорные деструкторы, удаять всё это.

Если же ты избавишься от этого - ты без проблем можешь сносить сразу всё. Представь себе стековый аллокатор.

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

Но сейчас из-за этого птушного раии, которое пропитало всё там, где ненужно. Мы долбим эти мусорные конструкторы/деструкторы там, где это нахрен ненужно и нормально чинить это никому ненужно. Т.к. и так хавают.

tsaruchetkav1
()
Ответ на: Как? от Moisha_Liberman

да, найди мне маны, как освобождать void* , так горячо любимый Сишниками, ну и int еще как освободить ?

anonymous
()
Ответ на: Интересно. от Moisha_Liberman

Енот Маллокофримёт

полно рычажков по управлению памятью

Да навалом. Выделяешь побольше. При освобождении маркируешь там флагом одним. Пулишь объекты. Арена-аллокатор-лайк. Мемори-меппед-файл. Авл-дерево, вместо красно-чёрного. Подсчёт ссылок в составе объекта. Хьюдж-пэйджес. Выделение на стеке. Групповой реаллок. Вероятно, я что-то упустил.

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

ЛОЛШТО?

да, найди мне маны, как освобождать void* , так горячо любимый Сишниками,

Всё просто... Для начала ставите себе на локалхост Линукс, а потом смотрите как работают malloc/realloc/calloc/free. Вы сможете, осилите, я знаю... =)))

ну и int еще как освободить ?

Так же просто. =)))

Заодно Вы поймёте что такое poor design.

Moisha_Liberman ★★
()
Ответ на: Вы серьёзно? от Moisha_Liberman

Вас точно ни чего не смущает в слове «стандартная»?

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

anonymous
()
Ответ на: Беда с вами... от Moisha_Liberman

Вы ставите говносреды на электроне, которые не осиливают простейшие сниппеты, которые vim умеет х.з. сколько лет. Например, одним сниппетом можно и malloc и free вставить.

Какое это имеет отношение к обсуждаемому? Я активно сам использую vim, до того долго жил в emacs. IDE тоже не брезгую, правда. Особенно для чужих больших проектов. Но это другая история.

Это не избавляет вас от выше сказанного. Код замусорен, goto/лестница if' ов в случае множества ресурсов, один и тот же код в каждом месте, где идет работа с ресурсами.

Так зачем?

anonymous
()
Ответ на: ЛОЛШТО? от Moisha_Liberman

Всё просто...

мог бы просто написать - «Я не знаю».

Заодно Вы поймёте что такое poor design.

Давно понял, и стараюсь на С без веских причин не писать.

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

Ты сейчас же скорее про архитектуру говоришь, чем про инструмент. Я видел полно сишного говнокода, где руками все это делается. С этими goto и прочим дерьмом. А на glib и ручным unref для RC вообще без слез не взглянешь. Это же мусорный код. Он ничего не дает.

С другой стороны, я видел крестовые поделки со своими качественными аллокатарами и с пакетным удалением ресурсов. Т.е. RAII никак не мешает писать качественный код. И всяко лучше ручного задрочества.

А вот в плане влияния на подходы ты вероятно прав.

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

А что ты бы предложил вместо raii? Не ручное же управление везде?

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

Если учесть скорость разработки и всё прочее, то Си давно пора слить на днище.

как ты объяснишь тот факт, что лоровские фанбои хипстерских язычков типа го и раста до сих пор ничего полезного не написали, учитывая суперскую «скорость разработки»?
а тем временем лоровские разработчики на си и крестах делают массу полезных патчей для свободного софта

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

как ты объяснишь тот факт, что лоровские фанбои хипстерских язычков типа го и раста до сих пор ничего полезного не написали, учитывая суперскую «скорость разработки»?

Потому что они на ЛОРе в срачах 24/7.

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

На крестах — может быть. Но на Си только говно.

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

На крестах — может быть. Но на Си только говно.

не, на си начиная от патчей для ядра линукс и заканчивая плеерами типа дедбифа

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

Приветствую секту свидетелей джетбрейнсов.

Владимир

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

anonymous
()

Вычеркивай Kotlin native из претендентов, я проверил.

Мне в общем понравился язык и в vim с хайлайтингом, ide не обязательна, но у него есть ряд недостатков.

1. Бесполезные стектрейсы которые не содержат номера строк:

To implement line numbers in the backtrace we need to implement DWARF parser.

https://github.com/JetBrains/kotlin-native/issues/1816

2. Скорость компиляции. Hello world на десятилетнем Pentium(R) Dual-Core CPU T4200@2.00GHz компилируется 25-30 секунд. Но даже на обычных процессорах 10-15 секунд.

3. При первом запуске kotlinc-native скачает 600 метров зависимостей, после распаковки:

170M	./.konan/dependencies/target-gcc-toolchain-3-linux-x86-64
1,7G	./.konan/dependencies/clang-llvm-6.0.1-linux-x86-64
4,0K	./.konan/dependencies/.extracted
1,9G	./.konan/dependencies
1,9G	./.konan/

Короче как игрушка работает, но не совсем готова.

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

А разве заявлялось что уже готова? По-моему оно в вечной альфе, если ничего не пропустил.

anonymous
()

Интересно, почему именно в тредах про C и C++ доходит до такого градуса неадеквата. Какая-то спецолимпиада по размеру ЧСВ. Остальные просто работают!

Ну, может у лисперов с хаскелистами бывает такое, но и они что-то давно притихли.

ТС, не бери си и кресты, таким же станешь!

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

Дык а нафиг на выходных-то?

Остальные просто работают!

Мы в выходные отдыхаем. В рабочее время работаем.

А я так и вообще сейчас в своей бане парюсь, да Царя между делом драконю. Давно мечтал это сделать. =)))

Ибо мне чисто поржать. =)))

Интересно, почему именно в тредах про C и C++ доходит до такого градуса неадеквата.

Да просто потому что мы знаем куда именно и как мы влазим (хоть по Царю этого и не скажешь иной раз, да). А скрипторылые вообще уверены что у них их нетленочки не иначе как Святым Духом исполняемы. Что-то типа этакой уличной магии. =)))

Moisha_Liberman ★★
()

14 страниц срача за 2 дня, и никто до сих пор не посоветовал Zig.
А так, действительно, кроме него только Go подходит под пожелания топикстартера.

anonymous
()
Ответ на: Дык а нафиг на выходных-то? от Moisha_Liberman

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

И часто ты своего Царя драконишь, когда остаешься один в бане?

Михаил

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

Да вон...

Наша общая беда, выше драконится на ура. А всё остальное, Миш, это уже не твоего ума дело.

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

Metaprog нервно курит в сторонке.

anonymous
()
Ответ на: Дык а нафиг на выходных-то? от Moisha_Liberman

Да просто потому что мы знаем куда именно и как мы влазим

руки, таким ублюдкам, по самую пиzdу, обрубать надо.

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

а ты его тыкал ?

собственно вопрос, так советуеш, или есть пару хеловвордов и некие впечатления про этот Zig?

anonymous
()

пока нет такой для общего случая

/thread

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

Ну, может у лисперов с хаскелистами бывает такое, но и они что-то давно притихли.

Немерлисты еще круче зажигали, правда не тут а на rsdn.

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

Вечная борьба «остроконечников» с «тупоконечниками».

anonymous
()

Какой язык в итоге выбрали?

Сишка - долгая, нудная, годится для написания подмодулей, критичных по скорости. C++ из той же серии, много возни, но с Qt еще терпимо местами. Питон хорош, но медленный и с динамической типизацией, зато есть готовые либы на любой чих. Котлин хорош. Го - убогий какой-то, даже без дженериков. Че там еще есть?

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

Паскаль же-десу, неосилятор.

anonymous
()

Зачем тебе кроссплатформенность?

Deleted
()

Pascal (начинал с Delphi когда-то, но уже почти не помню)

Free Pascal рулит, да. А так, говорят, Python достаточно высокоуровневый.

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

ты хотел сказать в западной Азии? Европы нет. Европа здохла

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

Видел я твой код на Python. Скажем так, «на любом ЯП можно писать на Fortran», только в твоем случае Фортран надо заменить на Си.

У него и с Javascript так.

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

«Языковые войны» не далеко ушли от «Европы».
Ведь в их основе лежит не потребность в улучшении, а настоянии на своем /проще говоря спорам/.
А здесь рядом и переходы на «личности» и сквернословие, ... «Языковые войны» - споры «остроконечников» с «тупоконечниками» /и ничего более/.

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

При чем тут ценности? Речь вроде про дискуссии.

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

Да здесь большого ума не надо.
Пусть кто-нибудь откроет тему «Чем С лучше C++» /вариации на тему/
Главное здесь - спровоцировать спор.
И он станет «легендой».

anonymous
()

Мастерски набросил. Даже в бан не улетел =)

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

Братишка, а ты пораскинь мозгами и подумай, нафига тебе писать на языке, который держит не какой нибудь комитет, а компания, причём одна из самых мерзеньких, прямо-таки с агрессивной политикой маркетинга, о чём нам хорошо показывают треды свидетелей jetbrains. Они-то фанатики, они спокойно проглотят любое в их сторону от святой корпорации. Дело вот в том, что другие-то не захотят, а заставят. Вот эти самые фанатики и заставят.

Владимир

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