LINUX.ORG.RU

А дайте мне историй успеха


0

1

...по переводу программных проектов с одного языка на другой.

Вот есть, допустим, хрень на перле, а ее бы хотелось перевести на питон. Юнит-тесты по большей части отсутствуют. Перевести на питон хочется не только потому, что код чище, но и потому, что куча третьесторонних библиотек из CPAN'а различной степени несвежести, несопровождаемости и волосатости документации заменяется вменяемыми вещами из стандартной библиотеки. Плюс кроме того, пробовал небольшим модулем заморочиться - питоновский вариант оказался в разы быстрее (и это на CPython, не говоря уж о PyPy).

Плюс там по мелочи: объектная модель без костылей, отсутствие искуса сделать через задницу, нормальная работа с документацией (в отличие от POD). Кроме того, современные best practices прозрачно для программиста и органично вплетены в язык, рантайм и библиотеку, а не прикручены с помощью такой-то матери и работают в малом количестве случаев.

Ладно. Это все лирика для тех, кто хочет сказать мне, что я идиот и спросить, зачем это лично мне. К делу же - меня интересует послушать тех, кто брался за подобную задачу (языки могут быть любые) и у него получалось. Как вы считаете, какой подход будет наиболее эффективным? Оглядываясь назад, как бы вы решали подобного рода задачу теперь? Что бы сделали по-другому?

Хочется база-знаний-треда.

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

> А у них на POSIX API где можно посмотреть?

http://sbcl.sourceforge.net/manual/index.html#sb_002dposix http://ccl.clozure.com/ccl-documentation.html#Unix-Posix-Darwin-Features

Я понимаю, что у них одна половина компилится в сишный код, вторая половина имеет JIT, и еще есть полтора интерпретатора

Хреново понимаешь, СL по стандарту инкрементный компилятор.

не уметь подвязывать внешние библиотеки

C-шные умеет по потребности, С++ через .. у всех, кто не плюсы.

antares0 ★★★★
()
Ответ на: И вообще, раз речь пошла о лиспе от shimon

> причина была в том, что новую версию нельзя было забутстрапить из предыдущей

и в том числе и по этой причине CMUCL был заменен на SBCL. Ты бы еще чего по-древнее поискал.

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

Вот мне надо сделать асинхронную работу с сокетом (O_NONBLOCK, select()). Где мне читать об этом в лиспе?

Погуглите про iolib. Там и про select, и про epoll и про kqueue, причём можно даже просто использовать общий CLOS интерфейс и оно будет само выбирать что-то подходящее на Linux/*BSD.

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

> Микрософт при написании Windows в свое время перешел с паскаля на си++.

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

Следы паскаля еще долго оставались с соглашении о вызовах некоторых системных функций.

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

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

Какой ты еще маленький! Многие уже не помнят.

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