LINUX.ORG.RU

Programming language


0

0

Подскажите, пожалуйста, две вещи (кто знает):

1). Какую-нибудь хорошую статью/страницу/ресурс/... со сравнением (желательно максимального количества) существующих языков программирования.

2). Может кто знает (свой родной язык програмиирования, или просто слышал): хочется найти язык программирования со следующими характеристиками:
- наподобие PHP (5), но только со строгой типизацией и возможностями создания собственных типов данных (a-la typedef, struct, signed/unsigned/...);
- наподобие С/С++, но только с автоматическим управлением памятью и чуть более высокоуровневый;
- компилируемый (в достаточно эффективный код);
- с возможностью (достаточно простого) добавления модулей на С/С++;
- работающий на unix (POSIX) платформах.

Плюс ко всему (чтобы, видимо, вообще никогда такой не найти): с открытыми кодами и божеской лицензией...

Буду рад любой информации.
Заранее спасибо.


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

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

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

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

anonymous
()

попробуй Ada www.ada-ru.org схожесть с пыхом сомнительна да и с ц/ц++ тоже хотя синтаксис -- вещь привычки. похожа на паскаль остальное вроде подходит да и в последних релизах от красношляпы в коробке живет

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

А по сути можно? Я, в общем, не претендую на звание гуру Си, С++, ассемблера и машинных кодов...

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

За OCalm, Ada, SmartEiffel - спасибо, буду смотреть.

Схожесть синтаксиса с Си/С++ - не принципиальна.

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

Интересно... Для меня, правда, имеет два минуса: - оставлены указатели (хотя вроде как распределением памяти самому заниматься не надо); - компилятор только один и он для Linux (как сказано на сайте) и Windows (в портах FreeBSD 5.2, в частности, не обнаружен).

xlex
() автор топика
Ответ на: комментарий от eXOR

Если я правильно понял, то для JSP всё равно нужна JVM, что нежелательно.

Кроме того, JSP - только для веба...

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

Насколько я понял, уважаемый xlex, вы смотреди и изучали С++. Но видимо вы что то пропустили - вам нужен именно ANSI С++:) Лучше им займитесь посерьезней и библиотечек поищите под свою задачу на крайняк.

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

Может и пропустил (хотя старался не пропустить), в любом случае хочется узнать альтернативы...

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

Лучше сей и сишных библиотек для задач как сетевых, так и локальных, пока никто не придумал, как на мой вкус. Подумайте сами, что вам нужно больше, чем может предоставить С++? Ну, если нужны окошечки :)))), так это можно ведь и Qt, и KDevelop и кучу еще чего.

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

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

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

Так что - начни сначала: опиши, что собираешься делать, какие категории задач решать, а мы - подберём язык или языки под них.

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

She, я не спорю - С/С++ это отличные языки (правда мне, Си гораздо более симпатичен), но, по-моему, они несколько низкоуровневые... По-моему, слишком...

flamer, категория задач - прикладное программирование. Если точнее - то работа необходима возможность связки с существующими С/С++ библиотеками (например, такими как PCRE lib, libcurl), возможность обработки. То есть, в принципе, это то, для чего и был создан Си (и впоследствии, С++), но писать программу с управлением памятью на достаточно низком уровне - весьма (для меня) затруднительно - слишком много приходится думать о том как реализовать, а не том что делаешь.

Поднял тут старый номер Byte (N19, 2000) с обзором языков программирования и встретил свои мысли: низкоуровневое управление ресурсами, без особой надобности - здорово, но только когда тебе нужно именно оно. Так же написанно, что С++ старается уметь делать всё что только можно (я не утверждаю, что минус языка). Там же, например, весьма заманчиво написанно про Component Pascal, который умудряется производить весьма эффективный код (на уровне Си), но при этом не предоставляет возможности управления памятью - это забота компилятора + язык достаточно безопасен (buffer overflow, memory leak, ...) и прост.

Так же слышал (на linux.org.ru в одном из обсуждений) про Haskel, одним из существенных преимуществ является то, что программа написанная на этом языке (если она скомпилировалась) считается доказанной и безошибочной с достаточно большой вероятностью.

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

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

Ну, это опять слишком общая задача.

Поясняю мысль: УНИВЕРСАЛЬНЫХ языков не существует. Нет языка, который годился бы сразу для очень широкого класса задач.

По этой причине надо владеть большим количеством языков (желательно по нескольку языков из *КАЖДОЙ* группы, а не циклиться на одной категории), и под каждую конкретную прикладную задачу выбирать наиболее подходящий язык.

Так что - советую не останавливаться. Взять Scheme, Python, OCaml, Tcl, Haskell и Mercury для начала, освоить - и потом из них и их родственников выбирать себе подходящие языки.

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

:))) Не хотите проблем с утечками памяти, переполнением и пр., пересядьте на винду и пишите на Visual Basic - вот уж что просто, как валенок :)))))

Мне кажется, тут надо уметь приносить что-нибудь в жертву. Либо вы избавлены от типизации данных, зато имеете в наличии всяческие утечки, либо типизация, никаких утечек (при правильно написанном коде, конечно :)) и, как следствие, строгий контроль за размерами и ошибки переполнений...

Кстати, что вы называете "высоким уровнем"? Какую-нибудь визуальную среду с навороченными классами (сорри, объектами)?

К тому же, и правда, согласна с предыдущим оратором: на мой взгляд, язык часто выбирается в зависимости от задачи. Подберите такой язык, с которым вам не пришлось бы начинать все модули и библиотеки писать практически с нуля. В Сях мало что приходится писать с нуля.

p.s. А почему вам С больше нравится?

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

Высокий уровень - имеется в виду уровень абстракции. В твоём глупеньком язычке Цэ большая часть кода будет вспомогательной, не будет относиться непосредственно к решению задачи предметной области. Языки высокого уровня позволяют описывать соответствующую предметную область в естественных для неё терминах, не отвлекаясь на несущественные детали реализации.

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

Хочешь понять, что такое по настоящему высокоуровневый язык? Изучи Лисп или Haskell.

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

Понятно.

Но тогда можно посоветовать обзор языков программирования (чтобы понять какие существуют группы, для чего созданы языки, и другую информацию)?

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

xlex
() автор топика
Ответ на: комментарий от She

Спасибо, конечно, но Visual Basic - да ещё и под виндовс - не для меня (пробовал, надо было одно время).

Си нравится тем что он достаточно прост и изящен, но для простых и низкоуровневых вещей. Не знаю... Может обаяние какое... (я из тех, кто между Emacs и Vi(m) выбирают второй)...

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

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

xlex
() автор топика
Ответ на: комментарий от She

Кстати, насчёт памяти, насколько я знаю, в том же самом Паскале таких проблем нет, хотя на нём (опять же, насколько я знаю) пишут не самые простые вещи (SAP DB)...

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

C - очень неуниверсальный язык. Его ниша весьма узенькая - рантаймы для других ЯВУ, системное программирование (ядро ОС, модули, загрузчики, и т.п.)

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

Ну а про группы - я тут назвал список достаточно друг от друга далёких языков. Вот с поверхностного ознакомления с ними я и советую начать - это покроет довольно много групп.

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

Понятно. Можно ещё посоветовать компилируемый "язык-клей" (задача: привязать С/С++ библиотеки к этому языку и потом описать логику их взаимодействия)?

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

Не совсем понятно требование компилируемости - скриптовый клей, как правило, вполне себе нормально живёт и в виде интерпретатора.

Из компилируемых ЯВУ с неплохим FFI - Scheme (Bigloo), OCaml.

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

не обижайте Си :))) Он не глупенький язычок. Ничего себе - глупенький... загляните в /src - и скажите, много ли можно к нему пристегнуть. Сложность - дело другое. Я в свое время колупалась и с Лиспом, и с - страшно сказать - vhdl(не путать с HTML :)), и с адой, и даже с VB, прости Господи :)))

Сравнить их нельзя никак, верно? Все упирается в постановку задачи. Понятно, что когда я буду на более-менее высоком уровне программировать ПЛИС, и если у меня будет возможность использовать vhdl и Си, я выберу первый...

С другой стороны, паскалевские программы - насколько я знаю, в них бинарники больше выходят :) (хотя, тут, ессно, все зависит от компилятора). Паскаль не люблю с первого курса универа. Прививки от аллергии не сработали.

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

Спасибо, на эти языки обращу особое внимание,

xlex
() автор топика
Ответ на: комментарий от She

И не думал обижать Си - самому нравится... =)

Паскаль самому не нравится, но его можно рассматривать как пример того, что в принципе, требования (мои) реализуемы.

xlex
() автор топика
Ответ на: комментарий от She

Си - глупый там, где его применяют не к месту. А в 99% случаев это так - вместо Си можно было выбрать что-то существенно более адекватное.

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

>C - очень неуниверсальный язык. >Его ниша весьма узенькая - рантаймы для других ЯВУ, системное программирование (ядро ОС, модули, загрузчики, и т.п.)

>C++ - более высокоуровневый язык, но, честно говоря, я бы ему вообще никакой ниши не дал, везде, где он применяется, найдётся более достойная альтернатива.

Такого бреда в жизни не слышал. Ты flamer - клоун наверное? В приличном обществе лучше так не говори:)))

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

А кроме как вякнуть - ничего больше не можешь, чмо?

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

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

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

Хорошую книжку по лиспу (обязательно на русском) в электронном виде подскажите плиз ! Совершенно не представляю как там реализован ввод-вывод ?

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

>в том же самом Паскале таких проблем нет, хотя на нём (опять же, >насколько я знаю) пишут не самые простые вещи (SAP DB)...
Ты не долбанулся ли ?

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

Какое у тебя образование, flamer? Чем в жизни занимаешься?

Так вот C++ идеальное решение для любой задачи, где скорость не сверх критична, и где не нужна итерпритация(это обоснование необходимости таких языков как perl, python и т.д.).

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

>Так вот C++ идеальное решение для любой задачи, где скорость не сверх критична

Да, да, а трепанация черепа -- идеальное средство от поноса и "итерпритация" будет не нужна.

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

>Хорошую книжку по лиспу (обязательно на русском) в электронном виде подскажите плиз !

Мир лиспа (двухтомник) . Ищи в гугле.

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

>Так вот C++ идеальное решение для любой задачи, где скорость не сверх критична, и где не нужна итерпритация(это обоснование необходимости таких языков как perl, python и т.д.).

Ты просто никогда не писал сложных проектов, где вся внутренняя организация возлагается на скриптовые языки.

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

>>Так вот C++ идеальное решение для любой задачи, где скорость не сверх критична, и где не нужна итерпритация(это обоснование необходимости таких языков как perl, python и т.д.).

>Ты просто никогда не писал сложных проектов, где вся внутренняя организация возлагается на скриптовые языки.

Сложных проектов не писал. Но и про скрипты ничего плохого не написал.

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

> Так вот C++ идеальное решение для любой задачи, где скорость не сверх критична, и где не нужна итерпритация(это обоснование необходимости таких языков как perl, python и т.д.).

ужас, как ТАК понятие о идеальности может извратиться .. может ты не про тот C++ говоришь?, так других я вроде не слышал. Ты про тот C++ который стратуструп по пьяни наваял?

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

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

это называется не "интерпритация" а байткод на виртуальной машине.. однако о плюсах виртуальных машин с приплюснутыми говорить бесполезно, они из другого мира совсем

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

Ну ты блин даёшь. Сначала истошно визжишь про "бред" в ответ на тривиальное утверждение о том, что C++ - язык без ниши, потом оказывается, что у тебя и знаний то нет, чтоб делать хоть какие либо утверждения о том, для каких задач какой язык следует применять. Разве не смешно? Стыдно должно быть...

Даю тебе шанс исправиться. Назови хотя бы одну КОНКРЕТНУЮ задачу (не надо обобщений!), для которой, как ты считаешь, нет ничего лучше, чем C++. Только так сможешь реабилитироваться.

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

имхо это пустая трата времени. может быть лучше уже давным-давно было написать статью с обзором ЯП. С оценкой сильных/слабых сторон и рекомендациями в каких случаях каким языком пользоваться? А потом ссылку давать на эту статью всем кто в очередной раз подобную чушь начинает нести. Ведь они же пишут этот бред не со зла, а по незнанию. Чего гнобить-то?

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