Автор Тема: "Псевдо" езици за програмиране  (Прочетена 3670 пъти)

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Не харесвам никакви "псевдо" езици за програмиране като Джава, Питон, Пърл... аз използвам Питона като трябва да напиша 10-на реда без компилирам, за друго не.

//оффтопик
Изгарям от желание да те насоля здраво по този въпрос, но ще се въздържа.
Това определено искам да видя, почвай със солта, искам доводи, за мен са боклук  :P

Ами приемам предизвикателството и подлагам темата на публична дискусия.

Java - аз не я обичам много, но тя е най-слабият ти пример за "псевдо" език, при все, че от почти всички, тя най-много се доближава до посочените за истински според теб езици - C и C++, дето се вика - при нея даже програмите се компилират (както до байткод, така и до машинен). Пък и, ако беше псевдо език, щяха ли от GNU да си играят да си пишат собствен компилатор за нея ;)

Python - това, че е динамично типизиран, в частност води до много изчистен и подреден вид на кода му, да, прилича на псевдокод. Но езикът си е съвсем нормален език за програмиране, поддържа много красива обектно-ориентирана парадигма и да се пише на него е удоволствие. Има хубава "съвместимост" със C, комбинацията от тях двата е доста мощен арсенал. В Линукс с негова помощ е направен много потребителски софтуер, предполагам всеки от нас ползва нещо, което в основата си е Python.

Perl пък е един от най-полезните езици за всички системни администратори. Може да е грозен и труден, но е незаменим в повечето си предназначения, не съм аз човекът, който може да дава конкретни примери, но тук със сигурност има такива хора.

Опитвам се да разбера твоята дефиниция за "псевдо" език - дали имаш пред вид обектно-ориентирани езици, или пък интерпретирани езици, или пък динамично-типизирани или пък скриптови?? Кажи кои са за теб истинските езици и кои са "псевдо", къде ще сложиш други популярни езици като Bash, Pascal, Ruby, Lisp, Haskell, Prolog, PHP, Scala и т.н.

Интересно ми е какво мислят всички по този въпрос - кой език за програмиране бихте нарекли "псевдо"-език? И кой - не?
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: "Псевдо" езици за програмиране
« Отговор #1 -: Nov 03, 2010, 18:55 »
http://en.wikipedia.org/wiki/Compiled

Та... какво значи "компилиран" :) Чак след това ще си изясня какво е "псевдо-езикът" споменат тук.
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: "Псевдо" езици за програмиране
« Отговор #2 -: Nov 03, 2010, 18:57 »
Езикът сам по себе си не може да бъде дефиниран като "компилиращ се", "интерпретиращ се" и .т.н.
Езикът е набор от правила - само това!
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: "Псевдо" езици за програмиране
« Отговор #3 -: Nov 03, 2010, 18:59 »
Нещо против Java-та ли  >:( >:( >:( >:( >:( >:(?
 ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: "Псевдо" езици за програмиране
« Отговор #4 -: Nov 03, 2010, 19:03 »
Езикът сам по себе си не може да бъде дефиниран като "компилиращ се", "интерпретиращ се" и .т.н.
Езикът е набор от правила - само това!
Да, още повече, че за доста езици има и компилатори, и интерпретатори...

Аз останах с впечатление, че "псведо"-език е език, който е по-различен от някои общоприети езици (доколкото разбрах C и C++ не влизат в групата на "псведо"-езиците). Но с какво трябва да е по-различен, трябва да каже bvbfan...
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: "Псевдо" езици за програмиране
« Отговор #5 -: Nov 03, 2010, 20:47 »
И C/C++ могат да се компилират до байткод, благодарение на LLVM. Между другото, това позволява разни оптимизации, които са невъзможни в compile-time и поради тази причина, някои C приложения компилирани с Clang/LLVM работят доста по-бързо, отколкото ако се компилират с gcc. Наскоро успешно компилираха ядрото с Clang. Освен което, компилаторът не е GPL-нат, а е с наистина свободен лиценз.
Активен

"Knowledge is power" - France is Bacon

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: "Псевдо" езици за програмиране
« Отговор #6 -: Nov 03, 2010, 20:57 »
Мдам, а какво ще стане със всички езици (независимо дали са "компилирани" или "интерпретирани"), ако стигнем до разискване на "opcode в CPU".
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

lkr

  • Напреднали
  • *****
  • Публикации: 81
    • Профил
Re: "Псевдо" езици за програмиране
« Отговор #7 -: Nov 03, 2010, 21:30 »
Не харесвам никакви "псевдо" езици за програмиране като Джава, Питон, Пърл... аз използвам Питона като трябва да напиша 10-на реда без компилирам, за друго не.

//оффтопик
Изгарям от желание да те насоля здраво по този въпрос, но ще се въздържа.
Това определено искам да видя, почвай със солта, искам доводи, за мен са боклук  :P

Ами приемам предизвикателството и подлагам темата на публична дискусия.

Java - аз не я обичам много, но тя е най-слабият ти пример за "псевдо" език, при все, че от почти всички, тя най-много се доближава до посочените за истински според теб езици - C и C++, дето се вика - при нея даже програмите се компилират (както до байткод, така и до машинен). Пък и, ако беше псевдо език, щяха ли от GNU да си играят да си пишат собствен компилатор за нея ;)

Python - това, че е динамично типизиран, в частност води до много изчистен и подреден вид на кода му, да, прилича на псевдокод. Но езикът си е съвсем нормален език за програмиране, поддържа много красива обектно-ориентирана парадигма и да се пише на него е удоволствие. Има хубава "съвместимост" със C, комбинацията от тях двата е доста мощен арсенал. В Линукс с негова помощ е направен много потребителски софтуер, предполагам всеки от нас ползва нещо, което в основата си е Python.

Perl пък е един от най-полезните езици за всички системни администратори. Може да е грозен и труден, но е незаменим в повечето си предназначения, не съм аз човекът, който може да дава конкретни примери, но тук със сигурност има такива хора.

Опитвам се да разбера твоята дефиниция за "псевдо" език - дали имаш пред вид обектно-ориентирани езици, или пък интерпретирани езици, или пък динамично-типизирани или пък скриптови?? Кажи кои са за теб истинските езици и кои са "псевдо", къде ще сложиш други популярни езици като Bash, Pascal, Ruby, Lisp, Haskell, Prolog, PHP, Scala и т.н.

Интересно ми е какво мислят всички по този въпрос - кой език за програмиране бихте нарекли "псевдо"-език? И кой - не?

И каква точно е красивата парадигма на Python, duck-typing? Защото аз не виждам нищо красиво в неговия обектен модел, може би explicit self? Красотата му пък няма нищо общо с това, че е dynamic typed. Също така Perl може да бъде заменен изцяло от Ruby/Python. Гледам са изредени езици като Haskell i LISP family, но за тях нищо не е споменато? Може би сме python biased?
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: "Псевдо" езици за програмиране
« Отговор #8 -: Nov 03, 2010, 21:38 »
Иначе не мога да коментирам гореизброените езици колко са псевдо, защото не им разбирам. Едно изключение е perl, с който имам нещастието да имам вземане-даване в последно време. Не знам дали е псевдо-език, но философията му е изначално сбъркана, отвратителна, предразполага към мърлявщина (което за мен е много лесно - изключително лесно превръщам свестно написан код в мърлявщина и хакерия, от която само аз си разбирам). Има поне няколко начина да свършиш едно и също, като резултата е че като не си запознат с някой от тези начини и видиш чужд код, ти бърка в здравето. Отвратителната имитация на указатели с references е нещо, което не мога да понасям (в PHP за жалост също съществува това, но не е издигнато в такъв култ). Разделянето на хешове, масиви и скалари е простотия и не ми изглежда толкова естествено, но айде това си е мое мнение. Маниакално сбърканият scoping е простотия. Уж е много строго последното, ама не. Мога да дам много пресен пример с това, ама ще ми дойде нанагоре да псувам отново за това. Не мога да разбера защо трябваше file handle-ите да са генерално изключение от иначе хубавата система и винаги да са глобални, където и да ги декларираш. И като цяло, цялата идея около този език е отвратителна и ако зависеше от мен, щях да го забраня, защото предизвиква мозъчни увреждания.

А,да, логиката на интерпретатора винаги ми убягва. Някои грешки ги открива в началото, други - по време на изпълнение, но това става на някакъв много случаен принцип, който още не съм осъзнал като хората.
« Последна редакция: Nov 03, 2010, 21:42 от gat3way »
Активен

"Knowledge is power" - France is Bacon

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: "Псевдо" езици за програмиране
« Отговор #9 -: Nov 04, 2010, 00:08 »
И каква точно е красивата парадигма на Python, duck-typing? Защото аз не виждам нищо красиво в неговия обектен модел, може би explicit self?
Е, ти не виждаш, аз виждам, сравнявам с Java. Всеки си има вкус, но на мен ми харесва след като всичко е обект не всичко да е наследник на Object, а всичко да е обект - от числата и инстанциите на класове, до модулите. Няма смисъл да спорим по въпроса дали duck typing-а е добра или лоша идеология, защото няма да достигнем до точен извод, а и въпросът тук е какво и защо може да се счита за "псевдо" език.

Гледам са изредени езици като Haskell i LISP family, но за тях нищо не е споменато?
Ми какво искаш да спомена за тях, чакам да чуя и те ли са "псевдо" езици или са си истински, но dvbfan все още не е казал нищо по въпроса. :)
Активен

bvbfan

  • Напреднали
  • *****
  • Публикации: 1056
  • Distribution: KaOS
  • Window Manager: Plasma 5
    • Профил
Re: "Псевдо" езици за програмиране
« Отговор #10 -: Nov 04, 2010, 07:54 »
Нарекох скриптовите езици като Питон, Пърл... "псевдо" езици за програмиране поради една причина, а именно че написаната програма се изпълнява от друга програма - липсва оптимизация. Защо липсва, пишейки код (Питон е С-like и на двата езика може да се пише "красив" и подреден код) ние се доверяваме на програмата майка да бъде изпълнена по възможно най-оптималният начин, т.е. няма свобода да се човърка непрекъснато основният изпълнител. Това от една страна е добре - знаеш, че някой се грижи за динамичната работа с памет, например, но от друга страна колкото изпълнението на основната програма е "по-универсално" толкова по-капризно е от към изпълнение и ресурси т.е. имплементацията е една и съща за приложения от различен характер, което за мен е минус. Прибавих и Джава към тях, защото положението е сходно. Компилирането до байткод и изпълнението му от виртуална машина на практика е аналогична или C# http://en.wikipedia.org/wiki/File:Overview_of_the_Common_Language_Infrastructure.svg
За сметка на това получената "свобода" във Фортран, С/С++, Паскал/Делфи от една е страна е много добре може да си прилагаш собствено оптимизиране за даденото приложение по твое усмотрение и необходимост, от една страна води до много проблеми с които може да се сблъскаш. Идеална хубост няма, но тенденцията е да се дава път на скриптовите езици като Питон, това "обектно-ориентиран" просто вече е извращение, също така и на С#, който според М$ е С++/++, т.е. ново поколение С и не бил близък до Джава, но аз съм на мнение, че като логика на изпълнение си е Джава-лайк. Казах, че според мен са боклук само да породя спор на тази тема :) в действителност нещата са комплексни и много често е по-добре да се пише на езици ново поколение. Искрено се радвам на QT/Nokia за усилията, които полагат за разпространението на фреймуорк-а и с интерес следя развитието му.
« Последна редакция: Nov 04, 2010, 07:56 от bvbfan »
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: "Псевдо" езици за програмиране
« Отговор #11 -: Nov 04, 2010, 08:15 »
@bvbfan: т.е. за теб псевдо език е всеки, който не интерпретира или се компилира до байт код (включително и C#), така ли?
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

bvbfan

  • Напреднали
  • *****
  • Публикации: 1056
  • Distribution: KaOS
  • Window Manager: Plasma 5
    • Профил
Re: "Псевдо" езици за програмиране
« Отговор #12 -: Nov 04, 2010, 09:25 »
Всеки език, който е рън-тайм е "псевдо" език за програмиране, докато Джава и С# са хибриди, общо взето и реално погледнато може би са най-доброто, но аз не им симпатизирам  :'(
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: "Псевдо" езици за програмиране
« Отговор #13 -: Nov 04, 2010, 09:43 »
Интересно е как ти твърдиш, че понеже не знаеш какво реално прави интерпретатора или виртуалната машина, която ти изпълнява кода, ѝ нямаш доверие. Ами аз не знам и компилатора какво прави като ми прави машинния код или изпълнимия файл. И в двата случая знаем тези програми какво би трябвало да правят, можем да прочетем някъде документацията по това как работят, но не знам колко от нас са им прегледали кода, за да се уверят в това какво наистина се случва и да им дадат пълното си доверие.

Това, че, на теория, като компилираш на C можеш да зададеш един дълъг команден ред с опции, за които се казва, че оптимизират, само по себе си не може да е гаранция, че наистина е така. Повече или по-малко ти се доверяваш, че това наистина са оптимизации и те работят.

Програмистът трябва да има някакво доверие във всички програми, които осигуряват (по един или друг начин) изпълнението на кода му. Иначе няма да знае какво да пише ;)

Отделен въпрос е, че за всяко нещо си има подходящият език, но в повечето случаи нещото се пише на езика, който програмистите му знаят или харесват най-много. Грешният избор обикновено оставя усещането, че езикът не струва.

Прави ми впечатление, обаче, как под програмиране се разбира винаги традиционното императивно програмиране. На шега бих казала, че се чудя дали не е защото ние българите все обичаме да казваме как точно трябва да станат нещата  ;D ;D ;D
Активен

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: "Псевдо" езици за програмиране
« Отговор #14 -: Nov 04, 2010, 10:56 »
Всеки език, който е рън-тайм е "псевдо" език за програмиране, докато Джава и С# са хибриди, общо взето и реално погледнато може би са най-доброто, но аз не им симпатизирам  :'(

Нищо общо няма процеса на генериране на машинен код и езика-източник за програмиране. Представи си че някой напише компилатор който превръща код написан на С# директно в машинни инструкции. Тогава според теб С# вече не е "псевдо" език.
Също така доколкото знам от питон може да се генерира независим изпълним файл.
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
"paskal case" / "camel case"
Общ форум
Apache 3 7725 Последна публикация Aug 11, 2006, 10:01
от ivak
Проблем с "struct cdev" и "struct semaphore"
Общ форум
halturata 22 13081 Последна публикация Aug 14, 2007, 17:31
от tarator
Проблем с "reboot", "halt" и т.н.
Настройка на програми
turboshark 5 7471 Последна публикация Sep 22, 2007, 00:13
от turboshark
SUSE Linux Enterprise 10 Server "Subscription"
Кошче
badmind 2 3746 Последна публикация Apr 01, 2009, 18:21
от seaman
Postfix Unknown Local Recipient "Message"
Настройки на софтуер
Neoromantic 8 6032 Последна публикация Feb 07, 2010, 15:15
от Neoromantic