![]() |
Выбор языка для изучения под конкретную задачу
Привет!
Я в теме не очень понимаю и сразу прошу прощения, если путаю кислое с холодным. Есть необходимость написать собственную программу для Windows для использования на своём ПК, которая работала бы с SQL(PostgreSQL?). Посоветуйте, пожалуйста язык программирования, который прост в освоении и на котором проще всего выполнить описанную задачу. Вопросы перспектив по дальнейшему применению, совершенствованию, использованию в других сферах полученных знаний и т.п. - третьестепенны. |
Возможно - не кислое с холодным, а тёплое с мягким...
Язык, на котором пишется "собственная программа" при такой постановке вопроса не имеет вообще никакого значения. ПисАть можно хоть на Java, хоть на PHP, хоть на C++, хоть на Pascal, хоть на Assembler, хоть на новомодном C#, хоть на VB/VBA/VBS... С БД на PostgreSQL можно работать "практически на любом языке". Если знания языков нулевые, то идея изучать любой из них ради написания одной единственной программы кажется мне пустой тратой времени и сил. :imho: Лучше просто заплатите некоторую сумму тому, кто умеет программировать... Из всех вышеперечисленных языков действительно сложен в изучении пожалуй что только ASM. А дальше - можно долго и вполне бесполезно сравнивать достоинства и недостатки остальных языков/средств RAD с точки зрения простоты изучения и использования. Вот только выявить однозначно лучшее средство - не получится. немного рекламы:
На всякий случай, если не знаете: форум vBulletin (например наш imho.ws) - типичное приложение для работы с БД, написанное на PHP. Причём довольно универсальное в плане СУБД - насколько я помню, умеет работать и с MSSQL, и с Oracle, и c MySQL. И именно PHP является лучшим выбором для написания Web-приложений.
|
С программированием знаком фрагментарно. Лет 15 написал прожку на Delphi для игры в "тысячу" в кубики. :)
Перепоручить написание программы к сожалению никому не могу. Инофрмация, которая будет обрабатываться не для посторонних. Сама программа будет не сложная, по крайней мере пока намечено: извлечение некоторой информации из базы данных, обработка на уровне школьной математики, визуальный вывод результатов в окошке. Если любой из перечисленнных языков может выполнять операции с SQL, то остаётся выбрать: 1. Самый простой в осовении(это, как я понимаю PHP?) 2. Имеющий хорошие книжки для чайников 3. Имющий хорошие форумы, где можно получить небольшие консультации. 4. Самый удобный для использования в Windows(это, как я понимаю C#?) 5. По возможности имеющий бесплатные, или надёжно пролеченные :biggrin:, программы(компиляторы?) для работы с ним. Прошу помочь в выборе по соответсвующим критериям. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Из платных - Visual Studio, Delphi/C++ Builder. А дальше - область личных предпочтений. Насколь я знаю, Delphi практически сошёл со сцены, и перспектив у Visual Studio всЯко больше. Наиболее "перспективным" вроде бы считается C#. Во всяком случае - по мнению M$... |
Спасибо за подробности. Наверное не буду заглядывать в будущее, а остановлюсь на настоящем. PHP! Не знаю как пойдёт, но главное, что дорога намечена! ;)
|
Собственно, Borland расписал все достаточно подробно, добавлю только пару слов
Цитата:
На самом деле понадобится только структура БД (ну, еще для облегчения ориентировки какие-нибудь фейковые данные типа "Вася Пупкин, умывальников начальник" или "Гадя Петрович Хренова, мочалок командир"). Цитата:
развернуть локальный сервер (тот же XAMPP) не сложнее, чем установить программу, логику писать - по большому счету, тут язык особой роли не играет, а верстать веб-странички, ИМХО, все же попроще, чем рисовать виндовые диалоги/окошки. кроме того, если вдруг понадобится дать доступ еще кому-то, то достаточно будет набрать урл в браузере, а не ставить этому "кому-то" программу на комп |
Цитата:
|
Вы тут главного не сказали про php....
Это интерпретируемый язык. То есть, на выходе екзешника или инсталяхи не получится. На той тачке где сия писанина будет работать будет необходимо установить собственно PHP.... а для обрамления всего этого в веб-браузере - еще и веб-сервер. |
Цитата:
Правда, как они будут работать под виндой - не скажу, не пробовал никогда. Цитата:
|
Цитата:
|
Я знал, что нужен будет какой-то трюк, но думал, что после некоторых манипуляций экзешник всё-таки получу. Потому и спрашивал об удоьстве работы в Виндовс.
Как же это будет выглядеть на самом деле? Как будет запускаться программа, как будет выводиться окно? |
Цитата:
Запускаешь браузер (практически любой), набираешь URL типа https://localhost:55443/MySuperApp и попадаешь на страничку приложения. А что тебе покажет приложение, спросит ли логин/пароль и т.д и т.п. - зависит от того, как ты его написал. Кстати, в процессе написания/отладки интерпретируемые языки удобнее тем, что не надо тратить время на компиляцию после каждого исправления. Кстати, про интерпретируемость: приложения .NET и Java тоже в общем-то можно (отчасти) назвать "интерпретируемыми", ибо скомпилированный в них код выполняется не напрямую процессором и даже не напрямик посредством ОС, а в соответствующей виртуальной машине. Со всеми вытекающими в виде доп. тормозов. Оно, конечно, в основном несколько быстрее, нежели PHP, но всё равно медленнее чем реально скомпилированная программа на C++ без .NET... |
Кстати, если уж речь зашла об изучении программирования для единичного проекта: есть такая штука, как BASIC-256 (случайно попалась на глаза :biggrin:). Простейший язык, есть учебник (правда, на английском), поддержка БД (sqlite). Всё бесплатно на хомяке http://www.basic256.org/index_ru.
Язык предназначен специально для изучения программирования, посему простой. Книжка на русском ("пожиже" оригинального учебника) тоже есть, С. Г. Никитенко "Свободное программное обеспечение BASIC-256 для школы". Только вышла, стоимость ~200р. Upd: оказывается - русский перевод учебника уже сделали :) http://www.altlinux.org/Books:Basic-256 |
Пока решил остновиться на C#. Трети раз в жизни берусь за программирование и первый раз решил начать "как положено" с построения блоксхемы. И только подумав в чём её лучше строить понял, что с C# обычной блоксхемой не отделаешься. Там же всё по другому...
Про BASIC-256 почитаю, за ссылки отдельное спасибо! |
Цитата:
P.S. Кстати, о литературе: |
Вот и стою и думаю, пора наконец-то проникнуться, или попробовать по-дедовски всё сделать?
Кстати, так и не нашёл программ для построения аналогов блоксхем для C#. Есть проги, которые из готового кода делают блоксхемы, что наталкивает на мысль, что предварительные намётки типа блоксхем для данного типа языков не имеют особого смысла. _____________________________________ Помню как в коде СВОЕЙ программы строк на 500 через два месяца не смог разобраться, чтобы внести изменения. :idontnow: Наверное в языках ориентированных на ООП, таких проблем при таких объёмах должно быть меньше? :rolleyes: |
Цитата:
http://en.wikipedia.org/wiki/List_of...Language_tools |
Цитата:
|
На самом деле, если уж браться за программирование всерьёз - начинать нужно не с конкретного языка типа C#, а как раз с основ ООП и UML. "Прочувствовав" ООП - программу можно достаточно легко "слепить" на любом ОО-языке...
|
Цитата:
|
gost2, что значит - без языка? UML на что, по-вашему?
|
Если провести аналогию, то ООП - это музыкальная теория, UML - нотная запись, а конкретный язык программирования - это музыкальный инструмент.
Поэтому сразу начинать кодить, не имея хотя бы базового представления об ООП - то же самое, что первым делом схватиться за скрипку и попытаться что-то сыграть. Результат немного предсказуем (С). |
Цитата:
|
не торопись пугаться :)
разве понятия процедурного программирования (переменная, цикл, функция) - это язык? нет, это концепция; аналогично существуют понятия ООП (классы, наследование, полиморфизм и тд) аналогично - разве блок-схема язык? нет, удобное графическое представление алгоритма. UML - примерно то же, только для классов. ну, а SQL, C#, Java, C++ - от этого в любом случае никуда не деться :) но, тут уж - "глаза боятся, а руки делают" |
Цитата:
Нет желания изучать программирование всерьёз - тогда ваш выбор это BASIC. Ну или, к примеру, FoxPro 2.6. Именно его бы я под ваши "задачи" и порекомендовал (как "специализированный диалект BASIC") - но на современном этапе он сильно устарел (разработка 1994 года), и его работоспособность под ОС новее чем XP вызывает у меня весьма сильные сомнения... А более свежие версии ориентированы уже на ООП со всеми вытекающими. |
По мне удобнее всего писать на C#.
- продукт Microsoft - хорошая интеграция с Windows, SQL Server - удобен для "чайников" так как не надо управлять памятью |
Ну да ну да
Цитата:
Запрос какой был? Вы еще сист. анализ посоветуйте изчать для начала.:confused: А что все ООП и UML от туда из системного анализа вырасли.:confused: Цитата:
Наиболее удобен для начинающего паскаль и производные или бейсик и производные. И если изучать теорию то уж не с ООП начинать. Это нужно когда вопрос ставиться о проектировании программ. |
dr_nil, мон шер... если уж порете чушь - порите ее в интимно-узком кругу, ок?
|
gost2, думаю что Visual Studio 2010 C# будет наилучший выбор:
1. Создание интерфейса интуитивно и программы смотрятся Windows-style 2. Интеграция с базой тоже облегчена 3. Язык сам по себе аналогичен Java и C++ - в итоге если выучишь C#, то и сможешь перейти в другой язык 4. Не надо убивать objects, это все забирается garbage collector 5. и так далее ;) Теперь, программирование не интуитивно - тут нужно "прочувствовать" и выучить принципы работы этого "всего". Как учить - я бы посоветовал для начала изучить: 1. Переменные и декларация переменных 2. Аррэи(Arrays) и Листы(Lists) 3. Лупы (Loops): for; while; for each и так далее. 4. Создание функий и использования функций (методы-methods) 5. Кондиционные стэйтменты (Conditional statements): IF, ELSE, IF ELSE После того, как прочувствуешь эти 5 пунктов, ты уже будешь "интуитивно" понимать синтакс программирования; тогда можно окунаться в классы, интерфейсы и другую лабуду :) PS - программированию ты не научишься смотря или читая. Этот опыт приходит во время практики. Так что я посоветую придумать проект и начать работать над ним. Иначе забей сразу. Вот тут есть туториал: http://www.lynda.com/Visual-Studio-2...g/83789-2.html Если будут вопросы, очень хороший ресурс, который даст очень дельный совет практически в любой ситуации: www.stackoverflow.com удачи - программирование не сложно, нужно только "понять" все принципы. Остальное очень просто - даже когда что то не знаешь, пишешь вопрос в google и обычо есть похожее решение и некоторые методы всегда можно использовать как основу PSS - а если хочешь разабатывать программируя, то изучай Objective C / Xcode; эти девелоперы очень востребованы и платят им хорошо. Но это будет посложнее задача... просто решил упомянуть. PSSS - на самом деле, возьми курсы программирования, это даст тебе толчок которого обычно дома не имеется. |
Цитата:
DELPHI по-моему самая простая и мощная среда когда нужно просто изготовить умеренной сложности программу, не вникая в теорию программирования. Только взять не самую новую версию, скажем, 7-ю или 6-ю. |
отжежбожежмой!!! :молись:
Цитата:
|
Все современные средства разработки для Windows (кроме, разве что, "тренировочных" типа BASIC-256) ориентированы на ООП.
Цитата:
P.S. Да, по большому счёту теория и UML нужны именно для проектирования ПО. Общая тенденция средств RAD сейчас именно такова, что средству "скармливается" проект, а собственно программный код генерируется в основном автоматически. Т.е. предлагается строить "город" ПО не из "кирпичиков"/"гвоздиков" команд конкретного языка, а из "готовых модулей" размером с "квартиру"/"этаж"/"дом"/"микрорайон". А если "строить" не "город" а "скворечник"/"собачью конуру" - да, вполне можно обойтись и без проектирования. :gigi: |
Цитата:
да что там ООП... помнится, меня как-то спросили, не смогу ли я "немного поменять" сайтик... простенький, типа визитки... попросил исходники, посмотрел... весь сайт реализован в виде ОДНОГО php-файла размером порядка 200к! ни функций, ни классов - сплошные if, определяющие контент, ну и, соответственно, внутри оных - код и html вперемешку. глянул, заплакал, сказал, что моей квалификации на такой винегрет не хватит |
Borland, BorLase
Ваша переписка длиться уж пол года как (не именно между вами, а вообще), автор давно не показывался (отписывался) даже. Или потерял интерес или одно из трёх... Мысли вслух были высказаны разные. Но по моему, автору надо было посоветовать с ходу access, а потом конкретизировать о том что такое программирование вообще, и что нужно знать для программирования в частности. Почему access? Да всё просто как божий день. Минимальный набор инструментов для получения максимального сиюминутного результата. А вот если результат будет получен (т.е. будет сляпано что-то работоспособное), но не будет удовлетворения от сделанного (загорится огонёк программиста в душе) вот тут автор и сам найдёт ответ на чём писать, что писать и какими методами реализовывать. |
Цитата:
Цитата:
Цитата:
|
Цитата:
что это такое? это не путанный алгоритм, и не куча goto, и не косые имена переменных/функций... нет индусский код - это именно базовые косяки в теории; грубо говоря, индус уверен - если лом 5 см в диаметре делает дырку в земле 20 см глубиной, то для создания скважины в 20 км и 5 км в диаметре достаточно соответствующего лома, и только; ну да, и еще кувалду надо взять соответствующую... понимаешь, о чем речь? |
Borland, я конечно могу ошибаться, но даже если автор и напишет программу - программированием не займётся (имхо)
Желание изучить SQL похвально, но для получения основ акцеса достаточно, а PostgreSQL был под знаком "?" BorLase, с индусским кодом всё ясно и нет возражений. Я по аналогии... У нас любой желающий может стать водителем. Для этого достаточно выполнения трёх условий: 1. наличие машины; 2. пройти медкомиссию; 3. Желание ездить. Теоретически у нас все дееспособные граждане с паспортом - потенциальные водители. Но не все бегут в автошколу учиться и получать права. Из тех кто получил, не все желают ездить. Из тех кто ездит, не все профессионалы. Из профессионалов не все участвуют в гонках. А из тех кто участвует не все пилоты формулы 1. В нашем случае, если автор выйдет дальше банального понимания команд в синтаксисе языка и простого select from where в SQL, то это будет прекрасно для саморазвития, но не достаточно для начала карьеры программиста. Ну а раз так, какая разница на чём он реализует свой проект. Имхо - акцесом менее болезненно получится решение и больше вероятность получить хоть какой то результат кроме разочарования. |
Цитата:
Например, возьмем кардиомониторы. Комплекс каридомонитор + программа обработки кардиограмм стоит порядка $10 000. Я взял бытовой китайский кардиомонитор за $300, легко хакнул его протокол, за пол-года работы по вечерам написал на дельфях вполне продвинутую программу приема и обработки данных, значительно мощнее имеющейся в свободном доступе единственной(!) финской поделки. Ни одного VCL компонента я не написал, ни одного класса не создал, все на стандартных компонентах. Без мощнейших стандартных TChart, TSeries и TClientDataSet я бы это все руками писал 10 лет. Пользоваться имеющимися ивентами и пропертями, тут все прозрачно, я не думаю что это означает "знание ООП". Программа работает, используется сторонними организациями, все довольны. Упреждая ваш вопрос - "безвоздбезддо, то есть дадом". Поддержку я обеспечиваю. Правлю баги, добавляю функционал по мелочам. Да, я вижу сейчас что можно бы структурировать получше, камментов навставлять можно бы и побольше... но главное - был заказ, он выполнен, заказчик в удовлетворении, имеется конкретная польза. И, представьте, без Керниган-Риччи. Мне кажется, у вас нет четкого понимания, что программирование бывает системное и прикладное. Вы поголовно все рассматриваете как системное, а это просто не гибко. Для системного глубокое знание ООП обязательно. Для прикладного, и если это приложение умеренного размера - его можно неплохо написать и с минимальным знанием объектного подхода, настолько чтобы лишь использовать предоставляемые языком и средой особенности. |
P579K, при всём уважении, с вами согласен.
Опять же что понимать под определением "прикладная" О существовании MS Excell знаете ? Ну так под ним можно то же слабать пользовательскую прогу. При чём рабочую, но чаще всего, для себя... |
Цитата:
|
Часовой пояс GMT +4, время: 01:56. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.