LinuxForum.Fans
Тема

какие языки самые поездатые-2

Автор: drBatty 87 сообщений 8874 просмотров
#213966
drBatty написал:

Ну покажите мне что-то серьёзное на этих ваших lisp'ах или там паскакалях? Ы?

Lisp - AutoCAD
PASCAL (и его производные: MODULA 2 -> OBERON -> ZENON) - OS BlueBotle
... кроме того, из CERN (а PASCAL=CERN & CERN=PASCAL) - выросло всё, что HTML, HTTP, WWW ...
на MODULA-2 написано было много ПО российских космических объектов и их наземки управления...

drBatty написал:

...Понятно. Можете не продолжать. Код пишут кодеры, а не академики. И для кодера вся эта ваша "выразительность" даром не нужна. Нужно другое - логичность и простота. Вот Lisp - сложный и не логичный. А Си - простой и логичный. Потому Сишный синтаксис сейчас чуть менее чем везде, а вот всякие лиспы == удел гиков.

Lisp он может и "нелогичным" кому покажется... Только синтаксис Lisp - это впрямую заимствованная "лямбда-нотация Чёрча" из математической логики, аксиоматики и теории доказательств. wink

#213968
voral написал:
Да есть разница:
- php -t hello.php
- gcc hello.c -o hello && ./hello

есть: hello.php мне ещё на сайт надо кинуть, и посмотреть. а hello.elf я сразу запускаю :P

voral написал:
Т.е. вопрос в скорости компиляции?

не критично, ибо компилируется только очень небольшой кусочек проекта. А не всё. На слабых компах это заметно - жабий код будет грузится ДОЛЬШЕ, чем компиллится Си программа.

voral написал:
- когда ставиш скрипт на комп где он будет работать и там происходит "а вдруг", то нет необходимости иметь при себе компилятор

за то необходимо иметь интерпретатор. И это - проблема. Даже если у вас есть интерпретатор лиспа, это вам скорее не поможет - этих лиспов как блох у барбоски, и все разные. Для shell'ов тоже ситуация трагичная - два варианта - либо используй урезанный и не функциональный стандарт, либо... См. выше про LISM.

voral написал:
- плюс за счет готовых функций: например мне одно время приходилось помотаться по городам и что то быстро сделать типа из безумного dbf данные обработать и засунуть в Interbase/fireberd. Ествественно на сях мне б пришлось озаботится подключениями каких то либ и тд. А в php все в инишнике сидит давно настроенном..... Но ведь это дело персонального инструментария. Я мог подготовить и все нужное чтоб потом просто #include "myneed.h" и вуаля

лучше-бы вы освоили Autoconf...

#213969

Ошибочно повторил пост.

#213972
Olej написал:
Но есть статистика, эта статистика проверена не одним десятилетием, что время написания (с отладкой, доводкой и пр.) не очень крупного проекта (hello world! - здесь не показатель, и в рассчёт не брать) на нетипизированных высокоуровневых ЯП (вот это самое важное, но они обычно и интерпретирующие) будет в разы короче, чем на классических императивных языках (которые и есть компилирующие).
У них философия разная.

Я не увлекаюсь подобной статистикой (хотя и слышал). Но подозреваю, что это (утрировано) считали так: взял две группы людей питоновцев и сишников. посчитали строчки, время, результаты, подлили....... В общем эта статистика интересна "среднестатистическому" руководителю проекта в плане в какой отдел проект отдать. (Если исключением стратегические вопросы)

Если взять с точки зрения конкретного разработчика или даже группы: все зависит исключительно от их навыков и предпочтений. Даже "тупо людское": "вот не нравится питон" (хотя и знает) все равно будет медленее писать...

Я, например, php в целом луше знаю чем c / c++. Но, если не будет явного упрощения, предпочтение к сям.


ЗЫ Кстати, как то не озадачивался. А скриптовые языки (например php) есть средства пошагово отлаживать?

#213974
drBatty написал:
есть: hello.php мне ещё на сайт надо кинуть, и посмотреть. а hello.elf я сразу запускаю

Зачем... Оно все в консоль выведет :) мы ж не конкретно о вебразработке.


Упс. выше опечатьался:

php -f hello.pnp

#213981
Olej написал:
Lisp - AutoCAD

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

Olej написал:
PASCAL (и его производные: MODULA 2 -> OBERON -> ZENON) - OS BlueBotle

никогда не слышал о таком. Ден новую ОС написал? Он же хотел новую ОС на HTML'е ваять? :lol:

Olej написал:
... кроме того, из CERN (а PASCAL=CERN & CERN=PASCAL) - выросло всё, что HTML, HTTP, WWW ...

бред.
Какая мне разница, что из чего выросло?

Olej написал:
Lisp он может и "нелогичным" кому покажется... Только синтаксис Lisp - это впрямую заимствованная "лямбда-нотация Чёрча" из математической логики, аксиоматики и теории доказательств.

я знаю.
А ничего, что эти ваши лямбда-исчисления были придуманы совсем для другой цели? Не? :O
Эх... Ну как ГСМ'ам объяснить-то... Ну попробуйте любой административный скрипт на lisp переписать - и сразу поймёте - кодить на лиспе === одевать трусы через голову. Ну не для этого он предназначен просто...

Надо вам исчислимость доказывать? Вот и доказывайте. BrainFuck он между прочим тоже Тьюринг-полный, это-же не значит, что на нём нужно писать?
(для тех кто не в курсе - BrainFuck - широко известный ЯП, цель создания которого - написать минимально возможный ЯП, на котором (в теории) _можно_ написать что угодно. В нём всего восемь операций. Этого более чем достаточно. Он очень выразительный, лаконичный, и отлично подходит по всем метрикам теоретиков. Вот хэловорд на BF

text
--[+++++++<---->>-->+>+>+<<<<]
<.>++++[-<++++<++>>>->--<<]>>-.>--..>+.<<<.<<-.>>+>->>.+++[.<]<<++.

без комментариев).

#213989
voral написал:
ЗЫ Кстати, как то не озадачивался. А скриптовые языки (например php) есть средства пошагово отлаживать?

да. ЕМНИП в пайтоне можно. В bash есть трассировка, попробуйте в начале скрипта set -x. Поставьте через строчку read, и будет вам "пошаговая" :o

voral написал:
Зачем... Оно все в консоль выведет smile мы ж не конкретно о вебразработке.

не выведет. В скриптовых ЯП проблемы совсем другие. Проблем с алгоритмами практически нет. Хотя-бы потому, что нет этих самых алгоритмов. Ту-же qsort на php может писать только идиот - она там и так есть. (даже больше - там НЕ qsort, а намного более быстрый алгоритм. Фишка в том, что обычно элементы при сортировке не сортируются, а как лежали, так и продолжают лежать на своём месте. Просто ключи переписываются.).

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

voral написал:
Упс. выше опечатьался:
php -f hello.pnp

у меня просто
[console]doc@dt:~$ hello.php

Hello

[/console]
:P

#214078
drBatty написал:
у меня просто

Угу. Я только когда поправил свою опечатку осознал, что вот уж как 3 года мог спокойно отказаться от виндовой привычки. :D Просто на атомате это вбивал когда нужно было

#214079
drBatty написал:
Но это всё совсем не радует - "в консоли" скрипт будет работать совсем по другому, чем на своём "рабочем месте", потому куда-то грузить таки надо..

Ну так я про использование php не как ЯП для вебП. А просто как некий ЯП который можно использовать для решения задач "в консоли". Т.е. он точно так же будет запускать и на рабочем месте.

#214087
voral написал:
[quote=drBatty]Но это всё совсем не радует - "в консоли" скрипт будет работать совсем по другому, чем на своём "рабочем месте", потому куда-то грузить таки надо..

Ну так я про использование php не как ЯП для вебП. А просто как некий ЯП который можно использовать для решения задач "в консоли". Т.е. он точно так же будет запускать и на рабочем месте.[/quote]

Точно то же можно добавить и про JavaScript (не путать с Java, общего между ними ничего, кроме 4-х букв в названиях).

#214088
voral написал:
Угу. Я только когда поправил свою опечатку осознал, что вот уж как 3 года мог спокойно отказаться от виндовой привычки.

заметили? У меня нет точки со слешем. Как в венде. wink

Olej написал:
Точно то же можно добавить и про JavaScript (не путать с Java, общего между ними ничего, кроме 4-х букв в названиях).

это каким местом можно JS в консоли выполнять? oO

#214110
drBatty написал:
заметили? У меня нет точки со слешем. Как в венде. wink

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

#214114
voral написал:
теперь заметил. как так не знаю. копал в сторону замены шела, ассоциаций. на большее пока знаний и идей не хватило.

всё проще :lol: ... в слаке . в PATH входит... док этим неоднократно хвалился.

#214115

Единственное, что "сделал". Сделал ссылку на скрипт в /usr/bin........ но как то это не правильно....

#214116

Хм, информация к размышлению.
festival тоже интерпретатор lisp.
Синтаксис очень схож с comon lisp
если ввести подсчет чисел фибоначи(рекурсивный метод)

text
(defun fib (n) (cond
    ((eq n 0) 0)
    ((eq n 1) 1)
    (t(+ (fib (- n 1)) (fib (- n 2))))
    )
)

а потом вы полнить (fib 40)
подсчет 40-го числа фибоначи
то можно повесить одно ядро(поток) на достаточно продолжительное время. :lol:

#214117
Fat-Zer написал:
всё проще :lol: ... в слаке . в PATH входит... док этим неоднократно хвалился.

Ну вот я уж хотел было все исходники системы скачивать и изучать :D

#214124

кстати по поводу лиспа: ИМХО незаменим для символьных вычислений. а по поводу программ на нём, то например: максима. + утилитарное использование в автокад (ЕМНИП исторически был практически полностью на лиспе [источник не найду]), гимп, емакс, фистиваль(синтезатор речи), ещё где-то(не помню)...

ormorph написал:
то можно повесить одно ядро(поток) на достаточно продолжительное время.

а ещё можно от нуля до трёх считать через MIN_INT.

#214130
Fat-Zer написал:
а ещё можно от нуля до трёх считать через MIN_INT.

Давай рецепт smile

Ну на счет лисп его еще использует reduce (довольно старая система вычислений, но еще развивается) ориентирована на физиков.
Раньше была популярна, теперь мало о ней слышно.
Только в reduce свой диалект lisp.

#214188
voral написал:
теперь заметил. как так не знаю. копал в сторону замены шела, ассоциаций. на большее пока знаний и идей не хватило.

на самом деле, Slackware - система для программистов. Потому-то там и живописно разбросаны разные мелочи, которые акромя кодеров, никому не нужны. Например точка в $PATH. А в венде - бардак. Кодеры ушли, а инструмент бросили. Так и валяется никому ненужный уже лет 20 :(

ormorph написал:
а потом вы полнить (fib 40)
подсчет 40-го числа фибоначи
то можно повесить одно ядро(поток) на достаточно продолжительное время.

а теперь попробуйте мой код на C.

text
#include <stdio.h>
#include <stdlib.h>

int fib(int x) { return x < 2 ? x : fib(x-1) + fib(x-2); }

int main() { int x; int r = scanf("%d", &x); if(r <= 0) return 70; printf("%d\n", fib(x)); return 0; }

(я уж не говорю, что сменой алгоритма можно добиться ещё более высокой скорости)

voral написал:
Ну вот я уж хотел было все исходники системы скачивать и изучать

не надо. В конце /etc/profile записано. Это скрипт на bash.

#214224

Доктор ну я же не для того привел пример чтобы показать на сколько какой язык круче.
А для того что бы было понятно что festival включает в себя интерпретатор lisp
просто данные строки можно ввести выполнив команду festival и получить результат.
Просто я привел вариант алгоритма, который довольно сильно загружает процессор.
С вашим примером этого же алгоритма на СИ тоже если задать число 50 будут чудеса, не говоря уж о том, что int такую размерность не поддерживает.

Такой вариант будет выполняться мгновенно.

text
(defun fibonacci (n)
    (defun fib-iter (a b count)
        (if (eq count 0) b
            (fib-iter (+ a b) a (- count 1))
        )
    )
    (fib-iter 1 0 n)
)

В sbcl вызов (fibonacci 10000) считает мгновенно, ну и число получается приличное, если нужна точность вот оно:

Показать
33644764876431783266621612005107543310302148460680063906564769974680081442166662368155595513633734025582065332680836159373734790483865268263040892463056431887354544369559827491606602099884183933864652731300088830269235673613135117579297437854413752130520504347701602264758318906527890855154366159582987279682987510631200575428783453215515103870818298969791613127856265033195487140214287532698187962046936097879900350962302291026368131493195275630227837628441540360584402572114334961180023091208287046088923962328835461505776583271252546093591128203925285393434620904245248929403901706233888991085841065183173360437470737908552631764325733993712871937587746897479926305837065742830161637408969178426378624212835258112820516370298089332099905707920064367426202389783111470054074998459250360633560933883831923386783056136435351892133279732908133732642652633989763922723407882928177953580570993691049175470808931841056146322338217465637321248226383092103297701648054726243842374862411453093812206564914032751086643394517512161526545361333111314042436854805106765843493523836959653428071768775328348234345557366719731392746273629108210679280784718035329131176778924659089938635459327894523777674406192240337638674004021330343297496902028328145933418826817683893072003634795623117103101291953169794607632737589253530772552375943788434504067715555779056450443016640119462580972216729758615026968443146952034614932291105970676243268515992834709891284706740862008587135016260312071903172086094081298321581077282076353186624611278245537208532365305775956430072517744315051539600905168603220349163222640885248852433158051534849622434848299380905070483482449327453732624567755879089187190803662058009594743150052402532709746995318770724376825907419939632265984147498193609285223945039707165443156421328157688908058783183404917434556270520223564846495196112460268313970975069382648706613264507665074611512677522748621598642530711298441182622661057163515069260029861704945425047491378115154139941550671256271197133252763631939606902895650288268608362241082050562430701794976171121233066073310059947366875

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

Войдите или зарегистрируйтесь, чтобы ответить.