Xpoint
   [напомнить пароль]

Выбор технологии

Метки: [без меток]
2010-04-17 17:27:49 [обр] Амир(0/4)[досье]

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

Мне хочется освоить современный язык программирования, с помощью которого в дальнейшем создавать не только webсайты но и обычные приложения работающие на разных операционных системах.
Вот что мне необходимо от технологии :

  1. кроссплатформенность. (компиляция в байт код)
  2. асинхронность (многопоточность).//очень важно для меня.
  3. API для работы с базами данных MySql,SQLite

и т.д

Почитал в интернете, напрашивается Clojure,
но так как я не знаю Java вряд ли его возможностями (плюсами) я смогу воспользоваться в полной мере.

Так же понравилось описание языка Lua , в документации заявлено что:

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

из этого возникает вопрос, плюс или минус это, для программы работающей в многопоточном режиме ?

Я понимаю что мнение людей могут быть разными и зависят они от ваших профессиональных навыков и вкусов.
Но всё же как профессионалов, прошу вас выссказать свою точку зрения,
какая технология удовлетворит мои запросы полностью ?

спустя 1 час 35 минут [обр] Thirteensmay(3/157)[досье]
многие удовлетворяют полностью, если вы собираетесь осваивать то заявления типа "так как я не знаю Java вряд ли его возможностями (плюсами) я смогу воспользоваться в полной мере" звучат странно, и наводят на мысль что вы не до конца понимаете чего хотите. В первую очередь я бы хотел предостеречь вас от осваивания "экзотического" или слабо распространенного (пиар) языка, это можно позволить себе позже. Также необходимо понимать что универсальные инструменты в какой-либо конкретной области могут быть хуже специализированных. В общем случае можно предложить яву, но это скажем так сферический конь в вакууме, не туды не сюды, если именно это вам надо то да, а вообще например для системного программирования лучше C, а для web тупо проще тот же PHP, и т.п., тут много моментов, невозможно сказать в общем, инструмент обычно выбирают под задачу, ну раз уж так хотите то обратите внимание на яву, похоже оно при вашей постановке будет наиболее оптимально.
спустя 3 часа 13 минут [обр] Амир(0/4)[досье]

Спасибо за мнение.

Немного проясню ситуацию. Сейчас решаю задачи при помощи PHP,
но используя PHP мне приходиться иногда использовать системные вызовы, изучать библиотеки различные,
команды в терминале и т.д
То есть объём необходимой для изучения информации постоянно растёт как "снежный ком".
Отнимая всё больше времени.
А написать прикладную программу без сторонних библиотек я уже не смогу,да и PHP не на каждом компьютере установлен.
Хочется универсальным инструментом овладеть,
чтобы изучить технологию которая поможет мне быстро решать разные возникающие задачи (вебпрограммирование,скрипты для администрирования ОС,прикладное программирование).
И при решении задач использовать возможности ОС или языка (многопоточность).
C или Java, признаюсь слишком сложны для меня в освоении.
Вот Lua и импонирует пока что мне, но минусов этого языка я не знаю.
А может и аналогичный инструмент есть, который эффективней и с большими возможностями.

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

спустя 11 часов [обр] Dennis F. Latypoff aka funky_dennis(0/78)[досье]
Амир[досье]
perl
спустя 1 день [обр] LookeR(0/1069)[досье]
М Перенесено из форума "Прочее"
спустя 22 часа [обр] Амир(0/4)[досье]

Остановил свой выбор на Lua.
Под WEB есть инструменты : keplerproject, Lua + Orbit + WSAPI + FASTCGI + Lighttpd,
многопоточность :

function hello(wsapi_env)
  local headers = { ["Content-type"] = "text/html" }

  local function hello_text()
    coroutine.yield("<html><body>")
    coroutine.yield("<p>Hello Wsapi!</p>")
    coroutine.yield("<p>PATH_INFO: " .. wsapi_env.PATH_INFO .. "</p>")
    coroutine.yield("<p>SCRIPT_NAME: " .. wsapi_env.SCRIPT_NAME .. "</p>")
    coroutine.yield("</body></html>")
  end

  return 200, headers, coroutine.wrap(hello_text)
end

библиотеки LuaForge,
возможность компиляции, и использования в дальнейшем, созданных программ на разных платформах,
и просто скрипты создавать для администрирования ОС возможно.

спустя 4 минуты [обр] Амир(0/4)[досье]
Прошу извенить модераторов, 1сообщение стерите пожалуйста.
Случайно вышло.
спустя 21 час [обр] Василий Свиридов(0/175)[досье]
Не зацикливайтесь на многопоточности. При непонимании глубинных принципов её работы можно поиметь себе немерянное количество проблем. Явная многопоточнось критична только в малой части софта, и обычно там, где много матана :) Типа кодеков, архиваторов, и прочих числодробилок. В большинстве случаев можно обойтись неявной многопоточностью и использовать асинхронные вызовы. (Под неявной многопоточностью я подразумеваю то, что вы сами не используете такие вещи как lock(), Mutex, Semaphore и прочая).
Powered by POEM™ Engine Copyright © 2002-2005