IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Нужен совет насчет выбора языка программ-я под конкретную задачу (http://www.imho.ws/showthread.php?t=136168)

V_I_S 04.11.2008 00:45

Нужен совет насчет выбора языка программ-я под конкретную задачу
 
Задача: написать синонимайзер(замена слов в тексте синонимами по словарю синонимов).
Собственно, вопрос в сабдже.
Правда, пока у меня выбор невелик-либо Visual Basic, либо JS(в силу того, что не программер ниразу, то ни С++, ни Дельфи не вты...извините, не подходит).
Также вот мысль и вопрос-подозреваю, что такая вещь легко пишется на PHP. Наверное, стоит напрячь серые клетки-выучить его, а затем уже программировать эту задачу?

Borland 04.11.2008 02:05

Цитата:

Сообщение от V_I_S (Сообщение 1603755)
либо Visual Basic, либо JS

Из этого можно сделать вывод, что конечный продукт будет работать под Windows, насколько я чего-то понимаю...
Дальше нужно определиться с интерфейсом пользователя: консоль, Web или "нормальный" GUI. Под консоль, IMHO, правильнее сделать JS либо VBS (скрипт), возможно также PHP/Perl. Под Web-интерфейс - рулит PHP/Perl, но можно и Java, и VBS. Под "нормальный" GUI - лучше воспользоваться Visual Basic либо Delphi либо Visual C++.
Вообще говоря, трудоёмкость решения данной задачи зависит не столько от используемого языка, сколько от "степени интерактивности", т.е. развитости интерфейса.
Хинт: словарь, наверное, лучше держать в БД (если он достаточно большой).
Наиболее универсальным решением будет веб-сайт на PHP либо просто скрипт на нём же (чисто технически - программа будет независима от ОС).

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

Если же текст и словарь не слишком большие, и работать программа должна под Win - проще всего, наверное, сделать её в старом добром M$ QBasic (между прочим, входил как составнная часть в MS DOS и в WinNT3.x/4.0).

В общем, реализовать можно на чём угодно, хоть на FoxPro. Можно даже извратиться и написать bat/cmd файл... :gigi:
Хотите более конкретного ответа - задавайте более конкретные вопросы.

V_I_S 09.11.2008 20:04

Борланд, спасибо за отзывчивость.
Вот конкретные вопросы и уточнение:
-база данных-5000 рус., +5000 англ.=10000. ПХП/Перл/ДЖС+МайСКЛ - отпадают, или стОит пробовать?
-это задача не для нуба в программировании, так?
-QBas-хороший вариант, или прикололся? Мне он нравился, хотя ПоуэрВасик/Турбо/Фри наверно получше?
-если попробовать на С++, то:
-разве ООП-составляющая одинакова для всех платформ, или придется использовать АНСИ С++?
-на самом деле, это часть задачи. 2-я часть-дергать РСС на заданную тему. А на С++ это конечно реализуемо но видимо, не тривиально, и более сложно, чем на ПХП/Перл?
-----
-Как выглядит такой вариант: веб-сайт под Джумла+модуль-синонимайзер на ПХП и МАЙСКЛ+модуль для дерганья РСС(на ПХП)?
-реально найти готовые/близкие решения в пхп-классах?
-облегчит-ли жизнь использование яху-пипиес?
-----
-вариант С#-даст ли к-н преимущества в компенсацию гемора по изучению?
Спасибо.

Borland 09.11.2008 21:36

Цитата:

Сообщение от V_I_S (Сообщение 1605204)
база данных-5000 рус., +5000 англ.=10000

При таком размере словаря - БД обязательна
Цитата:

Сообщение от V_I_S (Сообщение 1605204)
ПХП/Перл/ДЖС+МайСКЛ - отпадают, или стОит пробовать?

Нет, ну почему же...
Цитата:

Сообщение от V_I_S (Сообщение 1605204)
это задача не для нуба в программировании, так?

Ну, берясь за программу работающую с БД, кой-какой опыт программирования иметь неплохо бы. Это не значит, что ньюб не сможет её решить - просто сил и времени это у него отнимет существенно больше.
Цитата:

Сообщение от V_I_S (Сообщение 1605204)
QBas-хороший вариант, или прикололся?

При таких объёмах словарей - уже плохой. Не то, чтобы его совсем нельзя научить работать с БД - просто понадобится написание модуля сопряжения с БД чуть ли не на уровне ассемблера. А если словари держать в простом текстовике - работать программа будет мучительно долго... Лучше уж тогда взять FoxPro 2.5-2.6: язык близок к basic, но средства работы с БД - встроенные.
Цитата:

Сообщение от V_I_S (Сообщение 1605204)
или придется использовать АНСИ С++?

Если нужна кроссплатформенность - естественно, придётся использовать ANSI C++
Цитата:

Сообщение от V_I_S (Сообщение 1605204)
А на С++ это конечно реализуемо но видимо, не тривиально, и более сложно, чем на ПХП/Перл?

Да. Но при очень больших объёмах работы на это приходится идти - скорость работы интерпретируемых (скриптовых) языков заведомо ниже, нежели бинарного скомпилированного модуля, и если сервис будет давать результат не через 5-10-15-30 секунд, а через минуту и более - то для онлайн-сервиса это уже неприемлемо, а если ещё и запросов будет много...

Цитата:

Сообщение от V_I_S (Сообщение 1605204)
на самом деле, это часть задачи. 2-я часть-дергать РСС

Т.е. речь идёт уже не о приложении, а о web-сервисе. Тогда вариант
Цитата:

Сообщение от V_I_S (Сообщение 1605204)
веб-сайт под Джумла+модуль-синонимайзер на ПХП и МАЙСКЛ+модуль для дерганья РСС(на ПХП)

выглядит наиболее простым в реализации и предпочтительным при умеренной нагрузке на сервис. При большой - придётся писать свои cgi-расширения для web-сервера на компилируемом языке (обычно всё-таки C++, если только модуль не делается под M$ IIS).
Цитата:

Сообщение от V_I_S (Сообщение 1605204)
-вариант С#-даст ли к-н преимущества в компенсацию гемора по изучению?

В одном единственном случае - если вы сразу возьмётесь писать свои cgi-модули под M$ IIS (что само по себе задача не для ньюба). Во всех остальных - лишний геморрой.

Цитата:

Сообщение от V_I_S (Сообщение 1605204)
-реально найти готовые/близкие решения в пхп-классах?
-облегчит-ли жизнь использование яху-пипиес?

Ответа на эти вопросы я просто не знаю...

V_I_S 11.11.2008 21:01

Еще вопрос:
если ограничиться пока только приложением, насколько предпочтительнее С++ перед С? Когда-то знал С, чего-то даже на нем писал...С++ к сожалению не для меня... :-(
А вот такой вариант: FreePascal+MySQL?

Или вы все-же посоветуете что-то посовременнее, типа Дельфи+Файрбирд?

Borland 11.11.2008 22:58

Цитата:

Сообщение от V_I_S (Сообщение 1605754)
насколько предпочтительнее С++ перед С

Очень грубое сравнение: настолько же, насколько WinXP предпочтительнее Win3.x (знатоков попрошу не плеваться - сравнение действительно очень грубое). Для справки, M$ только-только прекратила продажи Win3.x... А использоваться он будет до полного выхода из строя соответствующего оборудования...
Точно так же и C без всяких плюсов будет жить ещё очень долго и отмирать будет весьма постепенно (если вообще будет). Обратная совместимость, кстати, есть - программа на "чистом" C обязана скомпилироваться в любом C++, и ничто не мешает делать программу на чистом C, а потом, по мере необходимости и изучения новых возможностей, добавлять новые фишки на C++.

Цитата:

Сообщение от V_I_S (Сообщение 1605754)
А вот такой вариант: FreePascal+MySQL?

Или вы все-же посоветуете что-то посовременнее, типа Дельфи+Файрбирд?

Сугубо параллельно. Данная задача решается что тем, что другим. Как и множеством других сочетаний.
Для локального приложения практически никакой разницы нет - один пользователь не создаст массированной нагрузки, и разницы в скорости работы решений на разных связках тоже в общем-то не заметит - разница между одной секундой и двумя (опять же грубая прикидка!) на обработку определённого текста будет существенна только при массированной обработке (десятки и сотни объёмных текстов).
Лучшее средство разработки в таком случае - хорошо знакомое (или максимально близкое к хорошо знакомому).


Часовой пояс GMT +4, время: 22:44.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.