LINUX.ORG.RU

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

 ,


0

6

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


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

И что? То, что он «программист на С++» наделяет его иммунитетом к идиотии и бездарности? Да нет же. Нету такого понятия «программист на С++» и прочей херни. С++ бывает разный, всё бывает разные. Подобные определения не имеют смысла.

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

оппа

Царь опохмелился и выдал дельную мысль.

А вот Мойша пока до этого не дорос.

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

Нету такого понятия «программист на С++» и прочей херни.

Прозвучало так, будто бы ты и на Питоне можешь неплохо программировать. Но при этом хаешь на всех, кто на нём пишет. И судя по всему, что это деструктивные необратимые изменения в твоём мозгу как раз от Си с Плюсами. Так что «программист на С++» — такое понятие есть. Отличается полной неадекватностью.

anonymous
()

пацаны пацаны, a почему когда я на ютубе ввожу запрос «c tutorial», то вылазят одни цыгане, ну то есть индусы? А?

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

Товарищ нейромодератор, вы мне потом подарите нейроцаря? Было бы интересно послушать про С++ начала 30х годов и откларативщину с нехваткой оперативки. Могу купить, но вы мне тогда подарите в придачу нейровладимира.

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

Но зачем? Ведь можно мешать C и C++

Про то и речь. Но, когда внутрях все на C++ с шаблонами и прочими плюшками, то нужно приложить некоторые усилия, чтобы спрятать это за чисто C-шным интерфейсом с opaque pointer и прочими костылями.

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

То я сомневаюсь в том, что Вы в принципе программист.

Вы лучше бы усомнились в собственной способности что-либо внято доносить до собеседника.

Если мне приходится объяснять что различные абстракции имеют различное выражение в коде.

Нет, вам не это нужно объяснять. Вам следует объяснить, как вот эти рассуждения о сферических абстракциях в вакууме относятся вот к этому пока еще непонятному вашему высказыванию:

Что предметных областей может быть более чем одна. А язык как раз нет.

Если вы такими умными словесами пытаетесь убедить общественность, что на чистом C можно написать что угодно, то это одно. Если что-то другое, то хотелось бы понять что именно.

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

Прекрасно. Вы идиот.

Остается вопрос, какое отношение ваше отрицание технического прогресса имеет к вопросу ТС-а?

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

Да, вы идиот. Это уже очевидно.

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

Если код не должен работать на 8-битовом микроконтроллере, то нет надобности писать этот код на C.

Если код не должен работать в потрохах Linux-а или не должен интегрироваться с каким-то древним легаси на C (вроде GTK, Mesa, Postgres, Motif или еще с чем-либо подобным), то нет надобности писать этот код на C.

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

Пока что выходит так:

  • на C можно писать в ядре Linux-а;
  • на C можно писать на старом говне (см.GTK);
  • на C можно наговнякать с нуля все, что нужно разработчику. Естественно, без учета стоимости этого увлекательного занятия.

А, ну можно добавить еще и то, что вы настолько ретроград, что не можете установить D в свою Генту.

А должен был? Писать?

Нет. Но если бы смогли написать, то был бы шанс, что хотя бы начнете понимать о чем речь.

Если ответ «ни как», то зачем мне прекрасная программа, которая не работает?

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

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

Вы задали дурацкий вопрос. На который я ответил так, как смог.

И с чего Вы взяли что я например прусь от того же докера?

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

И, уж тем более, это ничего не говорит о качестве программистов, которые docker-ом пользуются.

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

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

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

Что, впрочем, у вас не сильно получается. См.выше про идиота.

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

Если ты так топишь за D, почему ты сам его не используешь? Или для тебя это «тема поболтать»?

Моя работа связана с C++.

Но если бы не это и мне бы довелось выбирать между C, Rust и D в задачах, не связанных с низкоуровневым программированием для Linux-ов или *BSD, то я бы выбирал между Rust и D. Уж точно не C.

А уж выбор между Rust и D определялся бы тем, можно ли использовать GC в задаче, насколько нужны/важны сторонние библиотеки, на какие платформы нужно ориентироваться и т.д.

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

небольшая поправочка

Если код не должен работать на 8-битовом микроконтроллере, то нет надобности писать этот код на C.

Если есть компиль С++ под 8битник, то можно и на С++. Тини13 готова к С++. А уж 32битные cortex-m и подавно. Также для cortex-ов можно испрльзовать и раст.

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

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

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

D, вроде бы позиционировал себя

Изначально D позиционировал себя как «правильно сделанный C++». Хотя на уровне D1 образца 2007-го года это был, скорее, правильно сделанная Java для нейтива.

Потом начался долгострой с D2, который стабилизировался более-менее, где-то года 3-4 назад (по рассказам тех, что D пользуется).

На что он в итоге позиционируется сейчас сложно сказать. Сам Вальтер Брайт двигает его в сторону betterC (что, имхо, неправильное решение).

А так-то D используется для чего угодно. Но только в очень ограниченных колличествах и, насколько я понимаю, далеко не в OpenSource.

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

Мне скучно. Я зеваю.

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

Вы знаете, за те годы, которые я провёл в этой индустрии, зарабатывая свои неплохие деньги, я многое видел. Я даже ЛОР почитывал изредка (с момента его создания, но тогда мне было совсем не до ЛОРа).

Так вот. Я видел немало пионэров-героев, юннатов-ниспровергателей и прочую подобную публику.

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

Знаете к чему я это всё написал? А всё просто. Сколько бы флейм-войн не громыхало, как бы в битвах апологеты языков ни сходились, разя друг-друга отточенными силлогизмами, ну... Ну где этот ваш руби, где эти ваши эрланги? Опять свалили туда, откуда выползли, в тень истории? А сколько было воплей и объявлений того или иного языка очередным «нашим вот просто всем».

А С... А что с ним не так? Как писали на нём всё что угодно (что необходимо, на самом деле), так и пишут. Даже, если присмотреться, даже сишники сами по себе не меняются. Пофигистичные мужики, давно усвоившие что искусство использования макросов в С есть произведение от объёма седины в бороде на площадь лысины. =)))

Так что, посидим, покурим спокойненько, да и D схороним. Ненужно спешить. Успеем. =)

Moisha_Liberman ★★
()
Ответ на: Мне скучно. Я зеваю. от Moisha_Liberman

Ну где этот ваш руби, где эти ваши эрланги?

Используются в своих нишах. Весьма широко.

Причем там никому и в голову не приходит применять чистый C. По крайней мере широко. Какой-нибудь NIF для Erlang-а сделать — это еще пожалуйста. А вот обслуживание туевой хучи сообщений в WhatsUp — это, уж проссыте, на Erlang-е.

Или вот в Wargaming-е теперь отдел чуть ли не в 20 эрлангеров, делают разные веб-ные части для Wargaming-овой платформы. Обслуживают тучу юзверев в онлайне. И никому в голову там не приходит смотреть в сторону C. В сторону Elixir — да. В сторону Rust-а, в качестве влажных фантазий. Но не в сторону C. И, что характерно, года 3-4 назад этот отдел только сформировался и было там человек пять от силы.

Это к вашим словам о том, что на C можно сделать все, что угодно.

Пофигистичные мужики, давно усвоившие что искусство использования макросов в С есть произведение от объёма седины в бороде на площадь лысины. =)))

Походу, у Iron_Bug есть однояйцевый брат-близнец, которого воспитали те же самые дятлы.

eao197 ★★★★★
()
Последнее исправление: eao197 (всего исправлений: 1)
Ответ на: Мне скучно. Я зеваю. от Moisha_Liberman

А С... А что с ним не так?

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

Как писали на нём всё что угодно (что необходимо, на самом деле), так и пишут.

Не так. Раньше на сях писали всё подряд, от гуёв до серверов. Сейчас только по необходимости.

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

Я о нём же, но я не в курсе как он поведёт себя на:

struct S {
    char* name;
}

union U {
    int num,
    S s,
}
RazrFalcon ★★★★★
()
Ответ на: Мне скучно. Я зеваю. от Moisha_Liberman

Как писали на нём всё что угодно (что необходимо, на самом деле), так и пишут.

ага, ага. браузера человеческого на С нету. IDE - нету. да что там говорить, коспиляторов С на С почти не осталось, одна маргинальщина.

Пофигистичные мужики,

Как находили после этих мужиков по десятку СVE так и находят. А, пофиг.

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

Да это какая-то распространённая болезнь в некоторых кругах общества, что, де, Си – это Ъ-тру, а всё остальное «неосиляторы». Я как-то в школе сказал, что программирую на Вижл Бэйсик (наврал, но тогда я знал только это название) и все тут же меня начали осаживать, что все Ъ-тру программируют только на Си. И это довольно распространённое явление. Кто-то, судя по всему, так и не выходит из этого состояния.

Причём они предпочитают делать fork(), а не pthread_create(). Потому что fork() существует очень давно, а за pthread_create() могут предъявить, что не Ъ-тру.

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

*коспилятор = компилятор

очепятка

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

Последние четыре дня на ЛОР «необычные».
Похоже в психдиспансере г.Трынденск в 6-й палате установили компьютера и многие из пациентов были программистами.

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

Годы... Годы...

И за каждым обкаканым сишником потом годами приходится подтирать его баги.

С один, да. А вот на других языках как-то не успевают сопоставимую кодовую базу наработать. Устаревают и выходят из моды.

Сейчас только по необходимости.

Хочу взглянуть на Gnome3 на D. Или хочу постгрес на D.

Покажете? Или опять взлетела бы бабочка, да бейцы мешают? ;)

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

И за каждым обкаканым сишником потом годами приходится подтирать его баги.

Ты так говоришь, как будто ты подтирал чьи-то там баги.

Михаил

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

Я как-то в школе сказал, что программирую на Вижл Бэйсик (наврал, но тогда я знал только это название) и все тут же меня начали осаживать, что все Ъ-тру программируют только на Си.

Тебя, походу, до сих пор в школе унижают.

Михаил

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

Тебя, походу, до сих пор в школе унижают.

Это было этакое предложение «переходить на светлую сторону» где арифметика указателей, ручное управление памятью, fork, и всё такое, просто, как всегда, в нелепой школьной манере.

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

Оггада... =)

Используются в своих нишах. Весьма широко.

Он был чрезвычайно широко известен в узких кругах. Понимаю... Понимаю...

Походу, у Iron_Bug есть однояйцевый брат-близнец, которого воспитали те же самые дятлы.

Насчёт дятлов... Вспоминается дедушка Крылов с его сакраментальным — «Ты сер, а я уж, братец, сед». Посмотрим на все эти ваши «широко известные днищевые, простите, нишевые решения» лет через нцать. Помнится, тоже обещали новые операционные системы, новые рантаймы, удобные, быстрые безопасные.

Ну так покажите хоть что-нибудь такое, чтобы на D захотелось писать?

Кстати, не знаю что там у этого вашего варгейминга, это авторы «танков», по-моему? Но у той же ССР, авторов eve-online в ходу был stackless python. Как сейчас без понятия. Более популярным это не сделало stackless и просто python.

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

4.2

Причём они предпочитают делать fork(), а не pthread_create(). Потому что fork() существует очень давно, а за pthread_create() могут предъявить, что не Ъ-тру.

Просто 4.2.

Moisha_Liberman ★★
()
Ответ на: Оггада... =) от Moisha_Liberman

Он был чрезвычайно широко известен в узких кругах. Понимаю… Понимаю…

Да, лан, тестирование веб-приложений до сих пор лучше всего в Rails из всего, что я знаю. Причём очень простое. Специально для TDD.

kostyarin_ ★★
()
Ответ на: Оггада... =) от Moisha_Liberman

Он был чрезвычайно широко известен в узких кругах. Понимаю... Понимаю...

Узкие круги, илитка, тьху. Вылезь из под мамкиной юбки, выйди во двор и поспрашивай ребят какие програмки/игрухи они пользуют. И сколько из них на Си ?

Более популярным это не сделало stackless и просто python.

А Си, вообще сбоку ненужный валяется.

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

Оггада... =)

браузера человеческого на С нету.

NetSurf оказался странно, но довольно юзабелен.

IDE - нету.

ВизульнаяСтудия? Это по-моему, на winfaq?

vim со скриптами странным образом неплох.

Как находили после этих мужиков по десятку СVE так и находят. А, пофиг.

Т.е., это в частности после меня находили по десятку CVE? Вы сурьёзно? =))) Вообще-то, я их и ищу. Но это мелочи. И могу сказать что косяков в коде от деклараций безопасности меньше как-то не особо становится.

Moisha_Liberman ★★
()
Ответ на: я только учусь. от anonymous

Работа над собой — путь к успеху!

Владимир

anonymous
()
Ответ на: 4.2 от Moisha_Liberman

Просто 4.2.

4.2

Ты может быть просто очень молод, но гугл в помощь fork vs pthreads_create. Сейчас подобные трения уже касаются pthreads vs стандартные треды, что недавно подвезли. И значешь что там говорят? Зачем нужны стандартные треды, когда есть pthreads. Точно так же, как и говорили про pthreads, когда был fork. Всё просто делали через fork и умели только в него. Программисты Си довольно неповоротливы. Они просто не успевают за ходом событий. В этом и вся их суть.

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

Тестирование веб-приложений?

тестирование веб-приложений до сих пор лучше всего в Rails из всего, что я знаю.

Такое... кхммм... «тестирование» веб-приложений как фаззинг вообще-то либо (для уровеня нуб) это Peach fuzz. А это python.

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

Про рельсы я чего-то уже много лет ни чего не слышал. Раньше на них всякие порталы/сайтики пилили. Ну почему бы и нет, собственно?

Moisha_Liberman ★★
()
Ответ на: Оггада... =) от Moisha_Liberman

Он был чрезвычайно широко известен в узких кругах. Понимаю... Понимаю...

Вы слишком зашорены, чтобы осознать, что в современном мире, где самым популярным и востребованным языком является JavaScript, как раз C широко известен в узких кругах.

Ну так покажите хоть что-нибудь такое, чтобы на D захотелось писать?

У меня знакомый на D занимается расчетами финансовых рисков в каком-то инвестбанке. Говорит, что выбор в пользу D был сделан на основании сочетания факторов (т.к. выразительность, простота в использовании и скорость работы).

Вы, конечно же, писали бы такое на чистом Си для 8-ми битового микроконтроллера, не правда ли?

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

Программисты Си довольно неповоротливы. Они просто не успевают за ходом событий. В этом и вся их суть.

Как говорил Дядя Женя eao197: «Отучаемся говорить за всех».

Михаил

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

Да Вы шутник, как я погляжу! =)))

Ты может быть просто очень молод, но гугл в помощь fork vs pthreads_create.

Хохмы ради загуглил. Ни где не увидел утверждений сродни высказанных Вами.

Зачем нужны стандартные треды, когда есть pthreads.

И где же Вы такое нашли... Собственно, откуда травишка? =)))

Всё просто делали через fork и умели только в него.

Хохмы ради предлагаю Вам в свою очередь погуглить например историю возникновения короутинов. Понимаю что гуглить не будете, но давайте я Вам помогу — https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html

В этой статье гляньте на год её публикации и посмотрите на отсылки на Кнута лохматых годов.

Вы всерьёз хотите сказать что все ваши идеи не имели реализаций, пока в очередной язычок их не завезли? Правда? И это был только один пример.

Moisha_Liberman ★★
()
Ответ на: Тестирование веб-приложений? от Moisha_Liberman

фаззинг

Вот это и есть рукоблудие. Тестирование – это нормальная тема. TDD там всякие – пишешь тесты сперва, потом их покрываешь рабочим кодом. Это наталкивает на здоровую мысль, что видение проекта должно быть до воплощения. А то всякие подованы любят делать, но не знают что. А fuzz-тесты, это новый способ протирать штаны под благовидным предлогом. Если раньше (?) программисты ничего не делали под предлогом «компилируется», то fuzz-тесты дают такую возможность тестировщиками. В рельаности толку в них нету, потому что сам факт их применения значит, что программист не учёл ни один их corner case-ов.

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

Как говорил Дядя Женя eao197: «Отучаемся говорить за всех».

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

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

Я же попросил вполне понятные вещи?

При чём здесь RabbitMQ?

Это что, ядро системы? База данных? Вот зачем сперва тявкать (напомню уже сказанное — «ты сер, а я уж, братец, сед» и «сед» здесь не stream editor), а потом искать пятый угол, норовя соскочить с темы?

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

Так и скажите — нет такого. И всем будет ясно что D отличный язык (возможно), но много чего на нём нет и вряд-ли будет.

Moisha_Liberman ★★
()

Хм... Как на счёт того, чтобы попробовать все варианты на своих задачах и решить что тебе удобнее?

cPunk ★★
()
Ответ на: Да Вы шутник, как я погляжу! =))) от Moisha_Liberman

Хватит выдумывать

Вы всерьёз хотите сказать что все ваши идеи не имели реализаций, пока в очередной язычок их не завезли?

Ней, борщехлеб, тебе пытаются донести что 1970-й давно прошел и PDP-11 только в музее.

anonymous
()
Ответ на: Я же попросил вполне понятные вещи? от Moisha_Liberman

хватит тявкать

Я попросил вполне конкретные вещи и на вполне конкретном языке.

Так что там с IDE? Как обстоят дела с компиляторами ? А, балабольчик. Как там кодиться в виме без скриптоты?

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

Хм... Как на счёт того, чтобы попробовать все варианты на своих задачах и решить что тебе удобнее?

У него была одна задача — развести срач, и он остановился на варианте «провокация». Несколько страниц удалены, Царь в бане, кровь, пот, слёзы — цель достигнута.

Владимир

anonymous
()
Ответ на: Я же попросил вполне понятные вещи? от Moisha_Liberman

При чём здесь RabbitMQ?

При том, что в области MQ-шных систем это одна из самых востребованных и распространенных. И, не смотря на работу в самых разных условиях, она почему-то не написана на C. Хотя, если вас послушать, так кроме C ничего толкового нет.

напомню уже сказанное — «ты сер, а я уж, братец, сед»

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

Я попросил вполне конкретные вещи и на вполне конкретном языке.

Спросили. Примеров именно на D я не знаю (что не говорит, что их нет в принципе). Но вот вам аналогичные примеры. На языках с GC, т.е. из совсем другого класса, нежели C.

Вы не способы их воспринять? Ваши проблемы.

И всем будет ясно что D отличный язык (возможно), но много чего на нём нет и вряд-ли будет.

Распространенность языка — это вообще вещь ортогональная его качествам. На D не будут массово писать никогда. Так уж случилось.

Это не значит, что для ТС-а чистый С будет удобнее, чем D.

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

TDD в С куда как проще.

Даже книгу уже где-то в форуме рекомендовал. Если Вы её не прочли, то я не виноват.

Я вот про эту https://www.google.com/url?sa=t&source=web&rct=j&url=https://doc....

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

В рельаности толку в них нету, потому что сам факт их применения значит, что программист не учёл ни один их corner case-ов.

Нет. В реальности фазз приложений это одна из методологий убедиться в том, что говна в «безопасных» языках просто не меньше. Не более.

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