Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Хочу научится

2524  1 2 3 4 5 6 7 все
knaz75 прохожий01.06.09 00:22
01.06.09 00:22 
Здравствуйте.
Я узе давно пользуюсь компьютером как обычный пользователь и до недавних пор заинтересовался программированием.
Вот не знаю с чего начат,кто что посоветует?
#1 
AlexOtt постоялец01.06.09 10:28
AlexOtt
NEW 01.06.09 10:28 
в ответ knaz75 01.06.09 00:22
с чтения книжек
#2 
Energy Pirate посетитель01.06.09 10:29
Energy Pirate
NEW 01.06.09 10:29 
в ответ knaz75 01.06.09 00:22
В принципе я начинал изучение с Pascal. Несложный синтаксис и соответственно решаемые задачи. Если освоите, то можно перебираться на Delphi - тот же самый паскаль, только в визуальной среде. Можно ещё и немного почитать основы объектно-ориентированного программирования.
Посоветовать ничего не могу, так как не помню как сам осваивал
Alles Lüge
#3 
pkrasnop завсегдатай01.06.09 18:00
pkrasnop
NEW 01.06.09 18:00 
в ответ knaz75 01.06.09 00:22
Надо начинать с задачи.
#4 
Simple Nothing is f*cked01.06.09 18:30
Simple
NEW 01.06.09 18:30 
в ответ knaz75 01.06.09 00:22
Murr коренной житель01.06.09 21:00
Murr
NEW 01.06.09 21:00 
в ответ pkrasnop 01.06.09 18:00
Вообще-то, начинать надо с того, какой базис имеется.
Поверь, очень сложно научить программировать ученика, у которого верх "математических знаний" - устный счет в пределах первого десятка... и тот - с ошибками...
По секрету - в ЕСе сейчас есть именно такие - математика, физика и химия у них были опциональными предметами в школе...
#6 
  ludmilamac старожил02.06.09 10:32
NEW 02.06.09 10:32 
в ответ Murr 01.06.09 21:00
Я начинала с логических контроллеров.Все наглядно, понятно, а главное задачи были вполне конкретные.Правда это низкий уровень, зато освоив это, дальше уже будет гораздо легче.Видишь результат, там лампочка, к примеру зажглась, понимаешь логику тп, для людей со средними способностями, вроде меня, самое оно так учиться
#7 
Murr коренной житель02.06.09 11:32
Murr
NEW 02.06.09 11:32 
в ответ ludmilamac 02.06.09 10:32
Я начинала с логических контроллеров.
-----
В свое время Я начинал с физмата... в качестве подготовки.
Видишь результат, там лампочка, к примеру зажглась, понимаешь логику тп
-----
Либо понимаешь изначально, что создана машина состояний и переход из
одного состояния в другое индицируется зажиганием\гашением лампочки.
Тогда становится несущественно что именно программируется - логический
контроллер, сеть Сематикнет или просто какая-то прикладуха...
самое оно так учиться
-----
В школе, в советской средней школе, тоже учили физику. Если Я не ошибаюсь,
то с 7-го по 9-й классы. Очень много разных формул для задач на движение.
В 10-м классе - объяснили производные и интегралы без серьезной привязки
к решаемым, с их использованием, задачам. На втором курсе физмата выяснилось,
что с 7-го по 9-й классы средней школы мы изучали одну-единственную формулу
и не знали и, соответственно, не умели применить операцию дифференцирования
к такому интегральному значению как путь:
- скорость - всего лишь специальное наименование первой производной пути
- ускорение - наименование второй производной пути.
В школьном курсе физики сложность задач ограничена второй производной,
чего, однако, недостаточно для проведения всех расчетов.
#8 
  ludmilamac старожил02.06.09 12:13
NEW 02.06.09 12:13 
в ответ Murr 02.06.09 11:32
Все-таки я не очень поняла, вы хотите сказать, что человека, который к примеру не помнит высшей математики, знает физику на уровне школы невозможно научить программированию? Ведь согласитесь, разрабатывать ПО для самолетов и писать макросы под excel-задачи совершенно разного уровня, но то и то программирование.А мы ведем речь о том, как научиться...а если вы ребенка сразу запугаете теорией вероятности и теоретической физикой, у него желание пропадет учиться даже самому простому.
#9 
Murr коренной житель02.06.09 12:30
Murr
NEW 02.06.09 12:30 
в ответ ludmilamac 02.06.09 12:13
вы хотите сказать, что человека, который к примеру не помнит высшей математики, знает физику на уровне школы невозможно научить программированию?
------
Именно это Я и хочу сказать. С одной поправкой - есть "гении", которые в данном случае не учитываются.
сразу запугаете теорией вероятности и теоретической физикой
-----
Давайте не будем его пугать. Просто посадим на большегрузный бензовоз и пусть себе едет к месту назначения.
Только вот почему-то это считается недопустимым, а посадить его же за программирование автоматического управления тем же бензовозом - в пределах нормы.
Ведь согласитесь, разрабатывать ПО для самолетов и писать макросы под excel-задачи совершенно разного уровня, но то и то программирование.
-----
Увы, с моей точки зрения это абсолютно одинаковые задачи. В сегодняшнем программировании вообще мало сколь-нибудь различающихся задач. Тем более, что в обоих случаях программирование отсутствует, а наличествует кодинг.
#10 
  ludmilamac старожил02.06.09 12:48
NEW 02.06.09 12:48 
в ответ Murr 02.06.09 12:30
Ну не все же гении Если доверять программировать только самым одаренным,программировать будет некому.Потом, часто хорошие теоретики-фиговые практики.А еще чаще, требуется программист-не генератор гениальных идей, а просто аккуратный товарищ, который будет добросовестно исправлять ошибки, а гениям как правило это не ствойственно.Хотя еще раз, у каждого своя теория и свои методы, способности тоже у всех разные, что не исключает того факта, что человек может стать спецом своего дела, не являясь математическим гениемТерпение и аккуратность тоже играет роль-это, например больше свойственно женщинам, новаторство мужчинам.
#11 
Simple Nothing is f*cked02.06.09 14:24
Simple
NEW 02.06.09 14:24 
в ответ ludmilamac 02.06.09 12:48
У него очередной приступ мании величия, не обращай внимания.
#12 
Murr коренной житель02.06.09 14:28
Murr
NEW 02.06.09 14:28 
в ответ ludmilamac 02.06.09 12:48
что не исключает того факта, что человек может стать спецом своего дела, не являясь математическим гением
------
В одной из стран ЕСа попытались доказать, что можно сделать инженера из чудика вообще не изучавшего в школе математику. Оказалось, что сделать можно... правда - за его деньги... и куда потом его девать - непонятно - кроме диплома - ничего нет.
Ну а стать спецом своего дела, при том что дело базируется на математике и не зная математики - это к гениям...
а просто аккуратный товарищ, который будет добросовестно исправлять ошибки
------
А как он поймет в чем ошибка? Самый распространенный пример для программеров - трансляция - преобразование исходного текста программы в представление для процессора. Описывается формальной грамматикой, которую можно и весьма несложно преобразовать в транслятор. Какие-нибудь пустяки - от часа до суток счета на приличной машине и готовы набор данных и небольшая програмка. Что именно этот аккуратный товарищ будет исправлять? Он ведь не знает каковы допущения и какие проверки были выполнены перед их созданием. Мало того - он даже необходимость и харатер этих проверок понимать не будет. А нарушить - элементарно - даже спецы, разрабатывавшие Алгол, допустили несколько неоднозначностей...
это, например больше свойственно женщинам
------
У Барланда, к примеру, был написан собственный диспетчер памяти. Вполне официально признано, что это наиболее проблемная вещь во всем что они сделали. Написано это было именно женщиной. К счастью - единственной в Борланде.
#13 
kashej знакомое лицо02.06.09 14:30
kashej
NEW 02.06.09 14:30 
в ответ Murr 02.06.09 12:30
Безусловно программист должен иметь знания в математике, но нужна она не во всех задачах. Изучить ООП, паттерны проектирования параллельно создавая все более сложные программы можно и без математики.
http://denis-aristov.ucoz.com
#14 
Murr коренной житель02.06.09 14:40
Murr
NEW 02.06.09 14:40 
в ответ kashej 02.06.09 14:30
можно и без математики.
------
Без математики можно научится писать код. Стать кодером.
Увы, даже став хорошим кодером, нельзя стать программистом... без математики.
Просто в силу абсолютного непонимания предметной области, которая, к тому же, меняется от задачи к задаче.
#15 
Simple Nothing is f*cked02.06.09 14:58
Simple
NEW 02.06.09 14:58 
в ответ Murr 02.06.09 14:40
О какой предметной области речь?
#16 
AlexOtt постоялец02.06.09 14:58
AlexOtt
NEW 02.06.09 14:58 
в ответ knaz75 01.06.09 00:22
купите (или найдите в интернете, оно есть и на русском) классический учебник по программированию - Structure & Interpretation of Computer Programs - лишней теории нет, куча примеров, язык правда там "необычный" для большинства народу, но и это поправимо...
#17 
Simple Nothing is f*cked02.06.09 15:00
Simple
NEW 02.06.09 15:00 
в ответ AlexOtt 02.06.09 14:58
AlexOtt постоялец02.06.09 15:53
AlexOtt
NEW 02.06.09 15:53 
в ответ Simple 02.06.09 15:00
пропустил :-)
а насчет "нененене" - и чем она вас смущает? это книжка именно о программировании как таковом, а не о кодировании на конкретном языке...
#19 
Simple Nothing is f*cked02.06.09 16:00
Simple
NEW 02.06.09 16:00 
в ответ AlexOtt 02.06.09 15:53
В ответ на:
а насчет "нененене" - и чем она вас смущает?

Это типа "я первый был". Cartman из South Park :-D
#20 
kashej знакомое лицо02.06.09 16:28
kashej
NEW 02.06.09 16:28 
в ответ Simple 02.06.09 16:00, Последний раз изменено 02.06.09 16:29 (kashej)
Я в свое время начинал изучать С++ а заодно и программирование по книге Дейтеля "Как программировать на С++". Очень объемная книга, поэтому если нужно побыстрей, то лучше взять что-нибудь другое из ряда "...для чайников" или "...за 21 день". Ну а так если есть время, то запастись терпением и проделывать все примеры и задачи из этой книги. Очень доходчиво все описано. А тут кто-то в форуме сказал, что нужна задача. В том-то и дело, что у новичка она как правило не всегда бывает. Он просто понимает, что ему нужно как-то начать программировать. А уж задачи будут появляться по мере приобретения навыков в программировании.
http://denis-aristov.ucoz.com
#21 
Murr коренной житель02.06.09 19:53
Murr
NEW 02.06.09 19:53 
в ответ kashej 02.06.09 16:28
Есть два способа обучения.
При достаточном уровне имеющейся подготовки можно, и достаточно легко и быстро, объяснить что собой представляет программирование и какую роль играет язык программирования, библиотеки, концепты т.п.
При недостаточном уровне подготовки это просто невозможно - придется начинать с простых, более-мение понятных, вещей и довольно медленно и трудоемко доводить до необходимо-приемлемого уровня. И не всегда это можно сделать.
#22 
  scorpi_ завсегдатай03.06.09 01:59
NEW 03.06.09 01:59 
в ответ ludmilamac 02.06.09 12:13
В ответ на:
Все-таки я не очень поняла, вы хотите сказать

Неудивительно, этого никто не понимает.
#23 
AlexOtt постоялец03.06.09 08:31
AlexOtt
NEW 03.06.09 08:31 
в ответ Simple 02.06.09 16:00
а, понятно :-) кстати, если будут замечания по русскому переводу SICP, то можно мне писать в электропочту - я имею доступ к репозиторию перевода
#24 
Simple Nothing is f*cked03.06.09 09:17
Simple
NEW 03.06.09 09:17 
в ответ AlexOtt 03.06.09 08:31
У меня точно не будут - я такое читаю в оригинале всегда. Кстати, надо бы перечитать, уже много воды утекло.
#25 
Simple Nothing is f*cked03.06.09 09:30
Simple
NEW 03.06.09 09:30 
в ответ scorpi_ 03.06.09 01:59
Даже ты? :-О LOL
#26 
AlexOtt постоялец03.06.09 10:16
AlexOtt
NEW 03.06.09 10:16 
в ответ Simple 03.06.09 09:17
русский перевод хорошо сделан, там в основном ошибки в оформлении...
а так да, на английском лучше читать
#27 
eaglexyzid прохожий08.06.09 00:41
NEW 08.06.09 00:41 
в ответ AlexOtt 03.06.09 10:16
Например мой опыт такой:
Я когда учился програмит в своэ время Страусттрупа(с с++) пречитал и пределалл задачки (почти все около %80)
практически пол СТЛ перелопатил пересчупал руками
Для начала неплохо
НО ПЕРД СТРАУСТРУПОМ Я САВИЧА полностю закончил и понял что мало знаю(после одного типа браинбечевского теста :))) ) и взял Страуструпа
Потом Начал читат по дизайну например банду 4 Александреску также по алгоритмам нескоко книжек просмотрел понял сут без углубления
Потом почитал работая с с++ почитал С Шарп и джаву показалис мне елементарными по сравнениыу с с++
По моэму неплохо начат с с++ потом всё осталное быстро подхватываэтся и глубоко понимаэтся
Етот так вобсчем. если интерессуют детали спрашивай
#28 
kashej знакомое лицо08.06.09 11:08
kashej
NEW 08.06.09 11:08 
в ответ eaglexyzid 08.06.09 00:41
В ответ на:
По моэму неплохо начат с с++ потом всё осталное быстро подхватываэтся и глубоко понимаэтся
тоже так думаю, но начинать со Страуструпа (если нет никаких знаний в программировании) думаю что рановато. ИМХО конечно.
http://denis-aristov.ucoz.com
#29 
AlexOtt постоялец08.06.09 15:49
AlexOtt
NEW 08.06.09 15:49 
в ответ eaglexyzid 08.06.09 00:41
не НАДО начинать с С++! это язык для людей, которые уже умеют программировать! Надо начинать учиться с языков, которые дают понимание программирования, а не деталей конкретного языка. а то в С++ получается, что "за деревьями не видно леса" - слишком много низкоуровневых деталей и специфики.
P.S. я сам программирую на С++ ооочень давно, и поэтому и говорю.
#30 
Murr коренной житель08.06.09 16:37
Murr
NEW 08.06.09 16:37 
в ответ AlexOtt 08.06.09 15:49
не НАДО начинать с С++!
------
Не могу согласится. Ибо обучал "с нуля" и именно на С++... точнее - на С++ Билдере, но разницы с точки зрения обучения там не много... и вполне успешно.
Так что - не надо САМОСТОЯТЕЛЬНО С НУЛЯ начинать с С++ - будет правильно. Ибо ньюансов действительно много и не все их легко понять.
#31 
kashej знакомое лицо08.06.09 17:52
kashej
NEW 08.06.09 17:52 
в ответ Murr 08.06.09 16:37
В ответ на:
Ибо обучал "с нуля" и именно на С++...

В ответ на:
Так что - не надо САМОСТОЯТЕЛЬНО С НУЛЯ начинать с С++ - будет правильно

Скромности хоть отбавляй
http://denis-aristov.ucoz.com
#32 
Murr коренной житель08.06.09 19:30
Murr
NEW 08.06.09 19:30 
в ответ kashej 08.06.09 17:52
Дело не в скромности, в применяемой методике.
Та, которую применял Я, позволяла достаточно быстро ввести в программирование с нуля по ООП-концепции.
С++ Билдер вполне удовлетворял как инструмент, нетребующий детальных знаний на начальном этапе.
Разумеется, были вполне определенные требования к начальной подготовке и некоторые, хотя и весьма неплохие, гарантии по получаемым проф. навыкам - обучившиеся работают, довольны работой и достаточно адаптируемы к изменениям в работе.
#33 
AlexOtt постоялец08.06.09 20:04
AlexOtt
NEW 08.06.09 20:04 
в ответ Murr 08.06.09 16:37
НЕ НАДО начинать с С++. ООП концепции там кривые, возможности выстрелить себе в ногу, руку, голову и т.п. - навалом. Когда учишься программированию, надо учиться именно ему, а не написанию костылей на выбранном языке...
#34 
Murr коренной житель08.06.09 23:50
Murr
NEW 08.06.09 23:50 
в ответ AlexOtt 08.06.09 20:04
а не написанию костылей на выбранном языке...
-----
Именно.
Собственно ИСПОЛЬЗУЕМЫЙ ЯЗЫК при этом имеет не основополагающее значение.
Основное - именно учится программировать. Самостоятельно это сделать не совсем
просто. Сделать на неподходящем языке - еще сложнее. Ну и самостоятельно на
неподходящем языке - почти тупик. Тем не мение - эффективно обучать - используя
С++ - вполне можно. Проверено.
Эээ... Ты, кстати, не знаешь, что самое сложное при объяснении примату работы
процессора? :) Очень такой характерный моментик есть - примат знает\понимает, что
ресурсы процессора ограничены... понимает, что выполняются очень низкоуровневые
операции... понимает, что память - отдельно от процессора... точно знает, что когда
в регистр загружается "строка" - то реально загружается только адрес начала...
но(!) намертво забывает обо всем когда надо элементарно скопировать строку - копирует
только адрес...
<--- nobody harmed in this action -->
#35 
eaglexyzid прохожий09.06.09 02:29
NEW 09.06.09 02:29 
в ответ AlexOtt 08.06.09 20:04
/--------
Отправитель: AlexOtt
Заголовок: Re: Хочу научится
НЕ НАДО начинать с С++. ООП концепции там кривые, возможности выстрелить себе в ногу, руку, голову и т.п. - навалом. Когда учишься программированию, надо учиться именно ему, а не написанию костылей на выбранном языке...
-----------------/
ООП очен хорошо выражено. с++ концептуално мосчныи язык
Яве и с шарпу далеко к ниму
По моэму с++ надо учит а програмироват уже на другом яве иле шарпе питоне перле или беше итд Ич вычиваэш за недели
Тогда ты понимаэш что за кулисами проишодит (конешно неплохо бы и асмблер сперва подчитат (но я не я етого не делал Так что советоват не буду))
Согласен что Старуструп не прост дла начинаюсчих
С++ лучше начинат с Савича
http://c2p.ru/cpp/uolter-savich-programmirovanie-na-c-4-e-izd.html
Простая и доступня как минимум для меня.
Учит как програмироват так и язык
(Я не знаю что там уже советовали = Но я бы не рекомендовал начинат с паскаля и делфи, как для меня очен искажаэт ООП и всё что с ним связано Но это толко лиш моё мненя)
#36 
AlexOtt постоялец09.06.09 09:48
AlexOtt
NEW 09.06.09 09:48 
в ответ eaglexyzid 09.06.09 02:29
ООП в C++ - это жалкое подобие того, что было придумано для Smalltalk. Почитайте книги про ООП не на примере С++ и явы, а как оно должно быть. Посмотрите на CLOS, например.
Где в С++ диспетчеризация по множеству параметров, например? Есть конечно реализации (неполные), но с таким количеством шаблонов, что код практически невозможно читать...
Если бы С++ был таким замечательным языком, в него бы не тянули все подряд из других языков - вы почитайте новый стандарт - замыкания, анонимные лямбда-функции и т.д. И это при том, что до сих пор не решена проблема переносимости библиотек, даже на одной платформе, например, если у меня библиотека была скомпилированна с отладочной версией STL, а вызывающая программа - с релизной (или наоборот), то я могу пойти и повеситься, поскольку эти версии несовместимы. Шаблоны в интерфейсах использовать не могу, так что либо я должен отдавать библиотеку в С интерфейсом, или отдавать ее в исходниках. Замечательно?
#37 
Simple Nothing is f*cked09.06.09 12:19
Simple
NEW 09.06.09 12:19 
в ответ AlexOtt 08.06.09 15:49
+1.
#38 
Simple Nothing is f*cked09.06.09 12:23
Simple
NEW 09.06.09 12:23 
в ответ AlexOtt 09.06.09 09:48
На моей старой фирме при переходе на новый компилятор отладочная версия была упразднена.
А вот вторая проблема - с ней как раз е...сь :)
#39 
  scorpi_ завсегдатай10.06.09 16:17
NEW 10.06.09 16:17 
в ответ AlexOtt 09.06.09 09:48
В ответ на:
Посмотрите на CLOS, например. Где в С++ диспетчеризация по множеству параметров, например?

И каким боком тут ООП, если мультиметоды в Common Lisp - это просто множество методов?
#40 
pkrasnop завсегдатай10.06.09 18:14
pkrasnop
NEW 10.06.09 18:14 
в ответ AlexOtt 09.06.09 09:48
проблема бинарников, это проблема компиляторов, линкеров, ОС и тд. Никак не языка.
Проблема extern заключается в том, что C и С++ это не один и тот же язык, а программу собирать на 2ух разных языках всегда проблемно, но зачастую просто невозможно в других языках.
Templates...да, согласен, не очень удобно. Но открытые исходники и коммерческие версии это не несовместимые понятия в современном мире. Исходники можно собрать под любую ОС с компилятором, бинарники же запустить не получиться. В той же Java байт-код отлично "декомпилируется", поэтому не стесняйтесь выкладывать open source. :-)
#41 
AlexOtt постоялец10.06.09 18:33
AlexOtt
NEW 10.06.09 18:33 
в ответ scorpi_ 10.06.09 16:17
ну методы не обязательно должны быть членами классов, а в остальном - чем не ООП? наследование есть, остальное вроде тоже есть
#42 
AlexOtt постоялец10.06.09 18:36
AlexOtt
NEW 10.06.09 18:36 
в ответ pkrasnop 10.06.09 18:14
ну насчет декомпилируемости ява-байткода, тут тоже не всегда так просто получается, особенно если байт-код был выгнан не из явы...
а так, зачем мне открывать исходники, если они меня кормят? коммунизм у нас пока еще не настал, чтобы раздавать все направо и налево :-)
#43 
kashej знакомое лицо11.06.09 10:22
kashej
NEW 11.06.09 10:22 
в ответ AlexOtt 10.06.09 18:36
Чувствую, что тот, кто хотел научиться программированию уже занялся чем-то другим
http://denis-aristov.ucoz.com
#44 
Simple Nothing is f*cked11.06.09 16:05
Simple
NEW 11.06.09 16:05 
в ответ kashej 11.06.09 10:22
После того, как все советы были розданы, начался офтопик. Нормальная ситуация :)
#45 
pkrasnop постоялец11.06.09 18:13
pkrasnop
NEW 11.06.09 18:13 
в ответ AlexOtt 10.06.09 18:36
Кормят не исходники, а правильно работающие программы. Другой вопрос, что многие считают (особенно на востоке), что если есть исходники, то за правильно работающие программы можно не платить. Есть GPL, LGPL и в настоящее время они набирают обороты.
#46 
AlexOtt постоялец12.06.09 09:44
AlexOtt
NEW 12.06.09 09:44 
в ответ pkrasnop 11.06.09 18:13
В ответ на:
Кормят не исходники, а правильно работающие программы. Другой вопрос, что многие считают (особенно на востоке), что если есть исходники, то за правильно работающие программы можно не платить. Есть GPL, LGPL и в настоящее время они набирают обороты.

Это вы мне рассказываете? :-) Я со свободным софтом работаю очень давно, и пишу его тоже. Есть ситуации, когда кормят именно закрытые исходники - когда они содержат know how, в которое вложенно достаточно большое кол-во денег. Большая часть свободных программ не требует специальных исследований - пиши код и все. Да и много больших открытых проектов (eclipse, openoffice, и т.п.) было создано не с нуля, а открыто коммерческими компаниями. Так что не стоит преувеличивать силу опен соурса
#47 
pkrasnop постоялец12.06.09 12:49
pkrasnop
NEW 12.06.09 12:49 
в ответ AlexOtt 12.06.09 09:44, Последний раз изменено 12.06.09 12:51 (pkrasnop)
В ответ на:
сть ситуации, когда кормят именно закрытые исходники

согласен, есть такое......
В ответ на:
Большая часть свободных программ не требует специальных исследований - пиши код и все.

но нечасто :-)
#48 
Apels1n прохожий12.06.09 22:38
NEW 12.06.09 22:38 
в ответ pkrasnop 12.06.09 12:49
н.п.
раз уж начали оффтопить.. В общем, такая ситуация:
ищу практику как фахинформатикер (Anwendungsentwicklung). Был на фирме, занимающейся web-разработками, состоялся разговор с шефом и его замом. На вопрос о моих познаниях в PHP/MySQL честно ответил - практически никаких. Те мне поставили условие приёма на практику - я должен буду сделать небольшой проект, задание вышлют на мыло. По результатам они решат, брать меня или нет.
По такому случаю купил себе онлайн сие ЧТИВО . Книга пока не пришла, почитываю пока туториалы по пхп. В общем, как по Вашему, какого мини-проекта следует ожидать?
#49 
  scorpi_ завсегдатай13.06.09 17:32
NEW 13.06.09 17:32 
в ответ Apels1n 12.06.09 22:38
Ваша книга мне неизвестна, но я бы посоветовал "PHP in Action". Для веб-приложений могу кроме того посоветовать фреймворк Kohana. Этого пока хватит. В будущем обратите внимание на фреймворки Doctrine и PHPTAL.
#50 
Michel постоялец17.06.09 13:10
Michel
NEW 17.06.09 13:10 
в ответ knaz75 01.06.09 00:22, Последний раз изменено 17.06.09 13:17 (Michel)
разобратся бы какие языки к чему...
хтмл - ето разметка
пхп - ето создание скриптом для их отображения в браузере
мускл - ето база данных
оракл - тоже толъко комм. версия
еще вижуал бейсик
с++
паскал
ява
делфи
перл
и тп
какие языки учатся самостоятельно? к примеру - выучил язык скл, а без пхп его применить нелъзя.
и какие языки можно выучит за пару мес.?
#51 
Murr коренной житель17.06.09 16:33
Murr
NEW 17.06.09 16:33 
в ответ Michel 17.06.09 13:10
какие языки учатся самостоятельно?
------
Любые. По секрету скажу - они только так и учатся. Учитель лишь ускоряет процесс, акцентируя внимание на нужных моментах и отвлекая от ненужного.
а без пхп его применить нелъзя.
------
Кто тебе сказал такую глупость?
и какие языки можно выучит за пару мес.?
------
Любой язык, до уровня написания заданной функциональности, можно выучить за 5-10 дней.
#52 
AlexOtt постоялец17.06.09 17:38
AlexOtt
NEW 17.06.09 17:38 
в ответ Murr 17.06.09 16:33
Haskell выучишь? монстр...
#53 
Murr коренной житель17.06.09 18:13
Murr
NEW 17.06.09 18:13 
в ответ AlexOtt 17.06.09 17:38
Как _язык_ - всенепременнейше.
Пару дней назад случилось вернуться к основательно забытому XSLT... мало того,
в весьма нестандартной ситуации - с синтезом шаблона "на лету". Пришлось за
полдня разобраться как оно было задумано и работает... и написать новый набор
рулесов... практически - новый язык. Так что - дело в навыках.
З.Ы. Не первая тема - смотри ранее что именно подпадает под _язык_.
#54 
  scorpi_ завсегдатай17.06.09 19:09
NEW 17.06.09 19:09 
в ответ AlexOtt 17.06.09 17:38
В ответ на:
Haskell выучишь? монстр...

За полдня проработал пол-книги по Хаскелю и начал писать код.
#55 
Simple Nothing is f*cked17.06.09 22:47
Simple
NEW 17.06.09 22:47 
в ответ scorpi_ 17.06.09 19:09
Ну ты-то точно монстр :)
Чисто из спортивного интереса, или практическая задача была?
#56 
Simple Nothing is f*cked17.06.09 22:52
Simple
NEW 17.06.09 22:52 
в ответ Murr 17.06.09 18:13
Гы, забытое - это не новое.
#57 
Michel постоялец17.06.09 23:04
Michel
NEW 17.06.09 23:04 
в ответ Murr 17.06.09 16:33
В ответ на:
а без пхп его применить нелъзя.
------
Кто тебе сказал такую глупость?

никто не сказал, я узнать хотел
к примеру есть книги - ПХП и МуСКЛ
есть отделные по етим же языкам, но как я понял, одно без другого в вопросе создания сайта не работатет (ето т.с. частный пример).
отсюда и был вопрос, какие языки т.с. "самостоятельные" и для каких областей "заточены".
#58 
  digital.pilot патриот17.06.09 23:27
digital.pilot
NEW 17.06.09 23:27 
в ответ Michel 17.06.09 23:04, Последний раз изменено 17.06.09 23:36 (digital.pilot)

SQL - это не то же самое, что MySQL.
Есть SQL - это, грубо говоря, язык манипулирования табличными данными.
Есть СУБД - системы управления базами данных - поддерживающие использование SQL для работы с ними. Пример СУБД - это MySQL, а также, помимо него - Oracle Database, Microsoft SQL Server, PostgreSQL, IBM DB2 и еще туева хуча других. У каждой из них - своя ниша, свой типовой круг задач и свой диалект SQL (как правило, плохо совместимый с диалектами SQL в остальных СУБД).
Обращаться к БД при повседневной работе напрямую "руками" через SQL - сродни хардкорной работе в командной строке. Поэтому пишутся программы-фронтэнды (оболочки), представляющие из себя графический интерфейс (или веб-приложение), который, грубо говоря, транслирует действия пользователя в SQL-запросы к СУБД. Нажал на кнопку - программа выполнила SQL-запрос и показала результат.
На чем писать такой фронтенд - решается постановкой задачи, имеющимся программным и платформенным окружением, навыками, желаниями, фазой луны и т.д.
Сложилось так, что PHP часто используется как язык для написания веб-фронтендов для базы в MySQL. Это эдакая устоявшаяся связка.
#59 
  scorpi_ постоялец17.06.09 23:29
NEW 17.06.09 23:29 
в ответ Simple 17.06.09 22:47
В ответ на:
Чисто из спортивного интереса, или практическая задача была?

Да ну, какая практика может быть с Хаскелем? Так, из-за споров на одном форуме решил разобраться в этом. Это ж (как видно на моём аватаре) крайне важно!
#60 
  scorpi_ постоялец17.06.09 23:33
NEW 17.06.09 23:33 
в ответ digital.pilot 17.06.09 23:27
В ответ на:
Сложилось так, что PHP часто используется как язык для написания веб-фронтендов для базы в MySQL. Это эдакая устоявшаяся связка.

Патамушта обе доступны и бесплатны, а хостинги их предоставляющие стоят копейки.
#61 
Murr коренной житель18.06.09 00:07
Murr
NEW 18.06.09 00:07 
в ответ Michel 17.06.09 23:04
одно без другого в вопросе создания сайта не работатет
------
Не совсем. Точнее - полная путаница.
1. Сайт. Для него не требуются ни PHP, ни SQL. Даже HTML не обязателен.См. например FTP-сайт.
2. PHP. Совсем не обязательно использовать PHP для генерации HTML. Можно решать любую другую задачу. Просто генерация HTML это то, что в нем делать достаточно просто.
3. SQL. Он появляется не тогда, когда надо писать что-то на PHP или делать вэб-сайт, а тогда, когда надо где-то организованно сохранять какие-то данные, получаемые от пользователя. Можно решать эту часть задачи и без SQL, но с ним выходит проще. Кроме того, как написал D.P, никто не мешает получать данные непосредственно от SQL-сервера, не используя PHP или другой язык.
какие языки т.с. "самостоятельные" и для каких областей "заточены".
------
Практически на любом языке можно решать любые задачи. Просто на одних часть работы будет сделать проще, на других - затратно, и лишь некоторые задачи будет сделать невозможно. Невозможности, однако, скорее исключения, чем правило.
Например, HTML не умеет записывать информацию в файл. Вместо этого он отсылает данные на указанный сервер, где они уже могут быть записаны в файл тем же PHP или ASP или еще пятью десятками известных языков.
#62 
Simple Nothing is f*cked18.06.09 09:52
Simple
NEW 18.06.09 09:52 
в ответ scorpi_ 17.06.09 23:29
Жениться бы Вам, барин (с) :-D
#63 
Michel постоялец18.06.09 10:45
Michel
NEW 18.06.09 10:45 
в ответ Murr 18.06.09 00:07

В ответ на:

Просто на одних часть работы будет сделать проще, на других - затратно, и лишь некоторые задачи будет сделать невозможно.

Спасибо. я вот это и хотел бы узнать - какой язык для чего подходит.
#64 
paj прохожий01.07.09 14:11
paj
NEW 01.07.09 14:11 
в ответ knaz75 01.06.09 00:22
Всё начинается с "Hello World!"
#65 
JESSIKA2004 местный житель02.07.09 20:20
JESSIKA2004
NEW 02.07.09 20:20 
в ответ knaz75 01.06.09 00:22
Для того, чтобы уяснить логику программирования - нужно начинать с Паскаля. Тем более что в Интернете возможно скачать бесплатно Bortland Pascal или BC Pascal. Эти программы по своей сущности похожи и практически идентичны Turbo Pascal. Можно много рассуждать на тему что Паскаль стар как мир, но это все-равно что азбука программирования - практически все существующие языки программирования имеют очень похожую на Паскаль логику.
Далее взять в библиотеке или найти в интернете сборник задач и начинать решать задачи - причем начинать с элементарного "А+В=С". По началу не будет получаться, и будет дикое желание бросить все это, главное перетерпеть.
Есть также хороший сайт Интернет-Университета Высоких Технологий - там есть различные интересны курсы для самостоятельного изучения, курсы разработаны ведущими профессорами России. Обучение бесплатно, есть теория и тесты для оценки знаний. Уровни различные - от начинающих до спецов.
Ссылка www.intuit.ru
И добрый совет - посмотрите в том регионе, где вы живете, что-то вроде профобразовательного центра - там могут обучаться взрослые по вечерам, там наверняка есть специальность, связанная с компьютерами - это могут быть и компьютерные сети, и обработка данных, и обслуживание компьютеров. На всех подобных специальностях, где подразумевается работа на компьютере, программирование Паскаль или Дельфи- обязательный предмет. Там уже его можно освоить под руководством преподавателя, что поверьте мне, будет проще и надежнее. Дельфи, кстати, тот же Паскаль, только более современной версии.
Не знаю какие возможности в Вашем регионе, у нас, по крайней мере, любой взрослый, кому вдруг приспичило вновь учиться - может пойти учиться по вечерам в профессиональный центр и все это бесплатно, даже стипендию платят. И уровень образования весьма и весьма приличный.
#66 
Simple Nothing is f*cked03.07.09 10:59
Simple
NEW 03.07.09 10:59 
в ответ JESSIKA2004 02.07.09 20:20
Какие они все же идиоты в MIT... Ты тему-то полностью прочитала?
#67 
AlexOtt постоялец03.07.09 11:05
AlexOtt
NEW 03.07.09 11:05 
в ответ JESSIKA2004 02.07.09 20:20
не надо паскаль, только не его! я столько видел покалеченных им (и делфями) ...
#68 
AlexOtt постоялец03.07.09 11:06
AlexOtt
NEW 03.07.09 11:06 
в ответ JESSIKA2004 02.07.09 20:20
да, насчет обязательных паскалей и делфей - это особенность республик бывшего СССР, во всем мире оно используется гораздо меньше...
P.S. а интуит - да, хороший ресурс, про него я совсем забыл
#69 
Murr коренной житель03.07.09 12:24
Murr
NEW 03.07.09 12:24 
в ответ AlexOtt 03.07.09 11:05
я столько видел покалеченных им
------
VB-калек все одно больше...
#70 
voxel3d коренной житель03.07.09 15:53
voxel3d
NEW 03.07.09 15:53 
в ответ JESSIKA2004 02.07.09 20:20, Последний раз изменено 03.07.09 16:22 (voxel3d)
В ответ на:
Паскаль стар как мир, но это все-равно что азбука программирования - практически все существующие языки программирования имеют очень похожую на Паскаль логику.

"Очень похожая" это "немножко беременная". Языки обладают синтаксисом, семантикой и поддерживают определённые парадигмы программирования. Синтаксис не интересен. Интересны семантика и парадигмы. Знаете чем вторая строка псевдо-кода:
Type obj;
obj = value;
в Pascal отличается от кода в Algol 68/ADA/С++/С#/Python/Perl/Delphi/Haskell/Ruby/Fortran/Prolog? Достаточно длинный список? Тем, что у кода разная семантика. В Паскале это будет просто присваивание. В указанных языках это будет что угодно. Потому, что там есть такая вещь как перегрузка операторов, которая из "очень похожей логики" делает очень непохожую. (строго говоря, не во всех указанных языках все операторы можно перегружать, в питоне, к примеру, нет перегрузки оператора присваивания, но не суть важно, возмите оператор сложения и постройте аналогичный пример).
Что касается поддерживаемых парадигм - процедурное и ООП, это, минимум, половина того, что надо знать. Функциональное и метапрограммирование там недоступны.
Большинство вузов в россии обучают информатике используя паскаль. В принципе, всё логично. В школе - бэйсик, в университете - паскаль, на работу - быдлокодера. Вот и весь computer science.
Я бы, наверно, питон выбрал бы сейчас для изучения различных концепций, если бы хотел научитъся программировать.
Dropbox - средство синхронизации и бэкапа файлов.
#71 
JESSIKA2004 местный житель03.07.09 21:05
JESSIKA2004
NEW 03.07.09 21:05 
в ответ Simple 03.07.09 10:59
Господин хороший, я вовсе не претендую на лавры копьютерного гуру - куда же нам, блондинкам!!!! Мы же умеем только на дамских сайтах тусоваться. И похоже на компьтерной ветке - мнение женщины ну прямо клинический идиотизм. Спасибо за уточнение диагноза, дохтор!
#72 
Simple Nothing is f*cked03.07.09 21:40
Simple
NEW 03.07.09 21:40 
в ответ JESSIKA2004 03.07.09 21:05
Диагноз ты себе поставила сама этим постом ;)
#73 
Murr коренной житель03.07.09 22:56
Murr
NEW 03.07.09 22:56 
в ответ voxel3d 03.07.09 15:53
В Паскале это будет просто присваивание.
------
Эээ... если Я не забыл синтаксис Паскаля, то не будет... там кажется := такое прсваивание...
Но сути это не меняет.
Даа... Я бы не включал Алгол-68 в список... У него есть существенное отличие от Паскаля -
в его определении были допущены неоднозначности... где именно - уже не помню за давностью...
#74 
knaz75 прохожий04.07.09 01:12
NEW 04.07.09 01:12 
в ответ knaz75 01.06.09 00:22
Narod,ogromnoe spasibo za vawi otveti!!! Ja uze na4al izu4at Paskal i dovolno uvljoksja ))) Prodolzajte popolnjat forum novimi sovetami,budet vsjo pro4itano.
#75 
AlexOtt знакомое лицо04.07.09 10:51
AlexOtt
NEW 04.07.09 10:51 
в ответ knaz75 04.07.09 01:12
я бы все-таки посоветовал изучать питон - более богатые библиотеки, работает на разных платформах, есть всякие фреймворки для веба. а паскаль - это вещь в себе...
#76 
kashej знакомое лицо10.07.09 11:05
kashej
NEW 10.07.09 11:05 
в ответ knaz75 04.07.09 01:12
Я бы с Паскаля не начинал. При всяком изучении чего то нового нужно заглядывать вперед. Паскаль используется только в учебных целях. А если бы начал например с Java, то убил бы 2-х зайцев. И научился программировать и потом нашел бы работу (что с одним Паскалем невозможно).
http://denis-aristov.ucoz.com
#77 
OMG знакомое лицо10.07.09 14:00
OMG
NEW 10.07.09 14:00 
в ответ knaz75 04.07.09 01:12, Последний раз изменено 10.07.09 14:04 (OMG)
Если уж заговорили о Java..
Вот, может быть, такой подход к обучению больше понравится. Хоть материальчик и не первой свежести, но ИМХО очень полезен.
Или же сей труд на немецком. При правильном использовании гугла можно найти даже бесплатно. Тут уже работа в эклипсе, но материала меньше, чем по первой ссылке
#78 
knaz75 прохожий13.07.09 22:18
NEW 13.07.09 22:18 
в ответ knaz75 01.06.09 00:22
Скочал книгу по Питону,называется "Core Python Programming " есть кто небуть кто работал с етой книгой , мозет что посоветуете?
#79 
AlexOtt знакомое лицо14.07.09 10:06
AlexOtt
NEW 14.07.09 10:06 
в ответ knaz75 13.07.09 22:18
я бы посоветовал для начала Dive into Python - http://diveintopython.org/ - там есть и русский перевод, если это нужно. а core python programming бы отложил на позже, и/или использовал бы ее в качестве справочника
есть еще версия и для 3-й версии питона - http://diveintopython3.org/
#80 
ZOCK посетитель29.07.09 20:41
ZOCK
NEW 29.07.09 20:41 
в ответ knaz75 04.07.09 01:12
У каждого свой подход.. Есть те кто начинает с Delphi (или Pasсal), но я-бы не стал.. он действительно "другой" какой-то. Да и не так прост, как на первый взгляд кажется. Язык клёвый, надо отметить... жаль, что отмирает потихоньку.
Как-бы поступил я сейчас на Вашем месте.
Сгрузил-бы Eclipse или NetBeans для начала.
Придумал-бы себе прикладную задачку... типа "Калькулятор" или "Блокнот" или "Простой текстовый редактор" для начала.
Набрал-бы в google "Java ist auch eine Insel" сгрузил-бы PDF по Java. Например тут: http://winfuture.de/downloadvorschalt%2C2062.html
Книжка эта очень доступная для понимания. С нуля, так сказать. От элементарных вещей, до достаточно продвинутых. Про концепции в Обьекто-ориентированном Программировании типа MVC (Modell-View-Controller) тоже там есть. Там всё понятно даже для самых-пресамых блондинок (я ни на кого не намекаю).
Потом неторопясь, опираясь на этот PDF и прочие сайты по Java стал-бы медленно програмировать скажем этот калькулятор, вникая в основы языка. Рано или поздно, начнёшь разбираться что куда. Во всех этих странных, на первый взгляд "заморочках".
Потом задачку усложнил-бы и сделал-бы сам для себя что-то более прикладное и действительно нужное, но не сложное. И так шаг за шагом, день за днём. Однажды поймаешь себя на мысли, что начало получаться и даже без подсмотра в книжку :-)
#81 
anly завсегдатай13.08.09 22:48
anly
NEW 13.08.09 22:48 
в ответ AlexOtt 08.06.09 15:49, Последний раз изменено 13.08.09 22:53 (anly)
В ответ на:
не НАДО начинать с С++! это язык для людей, которые уже умеют программировать!
я начинал с ассемблера К580. Сам паял компьютер "Специалист". Потом на Синклере Z80 игрушку написал, не детскую, а солидную, с музыкой в АИгрике. Потом язык С. Учил по Ритчи и Керригану. Потом и по сей день уже лет 10 как - С++. Он мне больше всего нравится. С# знаю слегка, но раздражают деструкторы которые вызваются когда захотят.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#82 
Murr коренной житель14.08.09 01:02
Murr
NEW 14.08.09 01:02 
в ответ anly 13.08.09 22:48
раздражают деструкторы которые вызваются когда захотят.
-----
Они вызываются нормально - когда есть возможность их выполнить. А в большинстве случаев достаточно GC...
Для остального есть IDisposable...
#83 
AlexOtt знакомое лицо14.08.09 10:54
AlexOtt
NEW 14.08.09 10:54 
в ответ anly 13.08.09 22:48
ну дык, я тоже начинал с пайки специалиста и спектрума. но разговор был про то, что для изучения программирования на существующей аппаратной базе, С++ особо не нужен, поскольку он требует знания низкоуровневых деталей, которые в вашем случае были получены из ассемблера и С. Для изучения программирования какой-нибудь Squeak лучше подходит, поскольку учит программировать в терминах предметной области, а не компьютерных внутренностей
#84 
anly завсегдатай14.08.09 17:27
anly
NEW 14.08.09 17:27 
в ответ Murr 14.08.09 01:02
В ответ на:
Они вызываются нормально - когда есть возможность их выполнить. А в большинстве случаев достаточно GC...
Для остального есть IDisposable...

всё таки в С++ удобней: точно знаешь когда деструктор вызовется. Я на это часто полагаюсь. При этом не надо никакого дополнительного кода писать вокруг использования объекта.
Почему от этого отказались? Только для быстродействия что-ли? Типа не тратить время сейчас на то, что можно сделать потом.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#85 
Murr коренной житель14.08.09 18:18
Murr
NEW 14.08.09 18:18 
в ответ anly 14.08.09 17:27
всё таки в С++ удобней
-----
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...
При этом не надо никакого дополнительного кода
-----
Какой избыточный код требуется в C#? Даже delete не нужен... выйдет из области
существования и будет удален, когда это возможно.
Типа не тратить время сейчас на то, что можно сделать потом.
------
Быстродействие тут не причем. Причем - трудозатраты на написание и обслуживание
кода, манипулирующего объектами... он не всегда элементарный...
#86 
  Chipolino свой человек14.08.09 20:28
NEW 14.08.09 20:28 
в ответ anly 14.08.09 17:27
В ответ на:
Почему от этого отказались? Только для быстродействия что-ли? Типа не тратить время сейчас на то, что можно сделать потом.

Ну дык GC же .
#87 
  Chipolino свой человек14.08.09 21:34
NEW 14.08.09 21:34 
в ответ Murr 14.08.09 18:18
В ответ на:
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...

std::has_virtual_destructor<typeof(*ptr)>::value => true/false
#88 
Murr коренной житель14.08.09 22:09
Murr
NEW 14.08.09 22:09 
в ответ Chipolino 14.08.09 21:34
std::has_virtual_destructor<typeof(*ptr)>::value => true/false
-----
А прочитать внимательно? - Там же указано - простой ( plain, dumb ) указатель.
Все остальное - RTL - позволит\непозволит... это же не Паскаль с гарантированным
TObject в базе и виртуальными конструкторами и деструкторами...
А что будет с остальными указателями и ссылками на объект? Автоматом обнулятся?
Или как обычно - повторное освобождение и последующее AV?
#89 
  Chipolino свой человек14.08.09 22:20
NEW 14.08.09 22:20 
в ответ Murr 14.08.09 22:09
бла бла бла
ты конкретно скажи чего ты хочешь добиться ?
#90 
Murr коренной житель14.08.09 22:34
Murr
NEW 14.08.09 22:34 
в ответ Chipolino 14.08.09 22:20
"всё таки в С++ удобней" - так где же удобнее - в Плюсах или Шарпе?
В Шарпе GC решает упомянутые проблемы...
#91 
  Chipolino свой человек14.08.09 23:25
NEW 14.08.09 23:25 
в ответ Murr 14.08.09 22:34
В ответ на:
"всё таки в С++ удобней" - так где же удобнее - в Плюсах или Шарпе?
В Шарпе GC решает упомянутые проблемы...

Насчет удобства не ко мне , не мой пост .
Конечно шарп как язык намного приятнее плюсов ,
но реализации г. IMHO ;-)
#92 
  scorpi_ скептик14.08.09 23:41
NEW 14.08.09 23:41 
в ответ Chipolino 14.08.09 23:25
В ответ на:
но реализации г. IMHO ;-)

В чём это выражается?
#93 
  scorpi_ скептик14.08.09 23:42
NEW 14.08.09 23:42 
в ответ Murr 14.08.09 22:09
В ответ на:
Там же указано - простой ( plain, dumb ) указатель

Что это должно значить? Нетипизированный кусок памяти?
#94 
Murr коренной житель14.08.09 23:50
Murr
NEW 14.08.09 23:50 
в ответ Chipolino 14.08.09 23:25
Конечно шарп как язык намного приятнее плюсов ,
-----
Понятно, что не твой пост, но автор поста утверждает, что в Плюсах удобнее.
Для меня - удобнее Шарп. Можно продолжать холивор...
но реализации г. IMHO ;-)
-----
тююю... еще и реализации обсуждать... Я тут днями чуть голову не сломал на ограничителях
типов в шарповых шаблонах... до сих пор не до конца понимаю смысл new()... так что нафиг
все реализации, кроме используемой...
#95 
Murr коренной житель14.08.09 23:56
Murr
NEW 14.08.09 23:56 
в ответ scorpi_ 14.08.09 23:42
То, что ниже smart pointer.
http://forum.sources.ru/index.php?showtopic=191418
#96 
anly завсегдатай15.08.09 00:48
anly
NEW 15.08.09 00:48 
в ответ Murr 14.08.09 18:18
В ответ на:
всё таки в С++ удобней
-----
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...
При этом не надо никакого дополнительного кода
-----
Какой избыточный код требуется в C#? Даже delete не нужен... выйдет из области
существования и будет удален, когда это возможно.

пардон, я С# уже давно не трогал, потому даже ключевых слов не помню. Я помню что есть некая возможность определить область при выходе из которой будет вызвана какаято стандартная функция объекта, типа так:
Try
{
Объект а = new Объект
....
}
catch
{
// вот здесь эта функция и будет вызвана
}
Что то вроде, только конечно не try и catch, но я не помню какие ключслова. Вот описание этих блоков типа try и catch - и есть дополнительный труд.
В С++ десктуктор вызовется как только delete вызовешь. Но это мелочь, не слишком важно для меня. Меня больше волнуют объекты созданные в стеке без new.
в с++ их деструктор вызовется при выходе из области видимости.
{
A a;
...
...
// здесь будет вызван a.~a(), т.е. деструктор объекта a, даже если в "..." произошло исключение.
}
Такая фишка нужна не только для освобождения рессурсов (памяти, файлов и т.п.). Смысл - сделать чтото при выходе из области видимости. Вот простенькие классы чтобы не забыть записать переменную или булевкий флажок:
template< class T > class CSetRestore
{
T* m_p;
T m_v;
public:
CSetRestore( T* p, T v ){ m_p = p, m_v = *m_p, *m_p = v; }
~CSetRestore(){ *m_p = m_v; }
};
template< class T, T on, T off > class COnOff
{
T* m_p;
public:
COnOff( T* p ){ m_p = p, *m_p = on; }
~COnOff(){ *m_p = off; }
};
typedef COnOff<bool, true, false> COnOff_bool;
typedef COnOff<bool, false, true> COffOn_bool;
Проклят нарушающий межи ближнего своего (Втор.27:17)
#97 
  scorpi_ скептик15.08.09 02:41
NEW 15.08.09 02:41 
в ответ anly 15.08.09 00:48
Афигеть. И при таком знании ЯП ты делаешь выводы космической глупости об удобстве ЯП?
ЗЫ Искомое слово - using.
#98 
  scorpi_ скептик15.08.09 02:44
NEW 15.08.09 02:44 
в ответ Murr 14.08.09 23:56
И чем же чиполиновский ptr не raw pointer?
#99 
anly завсегдатай15.08.09 11:19
anly
NEW 15.08.09 11:19 
в ответ scorpi_ 15.08.09 02:41
В ответ на:
Афигеть. И при таком знании ЯП ты делаешь выводы космической глупости об удобстве ЯП?
жаль что афигел. теперь чего по существу не дождусь...
Проклят нарушающий межи ближнего своего (Втор.27:17)
voxel3d коренной житель15.08.09 11:38
voxel3d
NEW 15.08.09 11:38 
в ответ anly 15.08.09 11:19, Последний раз изменено 15.08.09 11:40 (voxel3d)
По-существу тебе уже сказали.
В ответ на:
using System;
class C : IDisposable
{
public void UseLimitedResource()
{
Console.WriteLine("Using limited resource...");
}
void IDisposable.Dispose()
{
Console.WriteLine("Disposing limited resource.");
}
}
class Program
{
static void Main()
{
using( C c = new C() )
{
c.UseLimitedResource();
}
Console.WriteLine("Now outside using statement.");
Console.ReadLine();
}
}


По сравнению с С++ дополнительные трудозатраты заключаются в указании " : IDisposable", написание тела void Dispose() будем считать за написание деструктора в С++.
Dropbox - средство синхронизации и бэкапа файлов.
voxel3d коренной житель15.08.09 11:42
voxel3d
NEW 15.08.09 11:42 
в ответ Murr 14.08.09 23:56
В ответ на:
То, что ниже smart pointer.

В ответ на:
std::has_virtual_destructor<typeof(*ptr)>::value => true/false

Мурр, концепт смарт-поинтеров заключается не в предоставлении метаинформации об инкапсулируемом объекте (хотя их можно и для этого расширить), а в предоставлении прозрачного доступа к нему.
Dropbox - средство синхронизации и бэкапа файлов.
anly завсегдатай15.08.09 11:45
anly
NEW 15.08.09 11:45 
в ответ voxel3d 15.08.09 11:38
В ответ на:
По сравнению с С++ дополнительные трудозатраты заключаются в указании " : IDisposable", написание тела void Dispose() будем считать за написание деструктора в С++.
спасибо. видно доп.затраты всего одна строчка. приемлемо.
Проклят нарушающий межи ближнего своего (Втор.27:17)
voxel3d коренной житель15.08.09 11:49
voxel3d
NEW 15.08.09 11:49 
в ответ voxel3d 15.08.09 11:42
Кстати, как язык мне очень понравился Nemerle, если говорить про то, что C# нравится больше C++.
Dropbox - средство синхронизации и бэкапа файлов.
voxel3d коренной житель15.08.09 11:59
voxel3d
NEW 15.08.09 11:59 
в ответ anly 15.08.09 11:45
Мне самое большое неудобство в С#, в сравнении с С++, доставило отсутствие множественного наследования классов. С деструкторами-"недеструкторами из С++" неудобства нет.
Народ ещё жалуется на низкую производительность .Net и GC в частности на больших используемых объёмах памяти, но я не упирался в это ни разу, так и не понял, врут или нет.
Dropbox - средство синхронизации и бэкапа файлов.
Murr коренной житель15.08.09 13:28
Murr
NEW 15.08.09 13:28 
в ответ anly 15.08.09 00:48
Выше уже писали об уровне владения.
Но суть в том, что даже using не является обязательным - объект будет удален GC когда это будет возможно. От программиста вообще не требуется об этом заботится - создал, использовал и забыл.
В Шарпе объекты без new не создаются. Есть статические объекты, доступ к конструкторам и методам которых возможен без new, но и об них корректно заботится GC.
Murr коренной житель15.08.09 13:35
Murr
NEW 15.08.09 13:35 
в ответ scorpi_ 15.08.09 02:44
Хммм... понимаю, что на смарт-поинтере это работает.
Но как это должно работать на двух простых указателях на один и тот же объект - не представляю.
Murr коренной житель15.08.09 13:40
Murr
NEW 15.08.09 13:40 
в ответ voxel3d 15.08.09 11:42
а в предоставлении прозрачного доступа к нему.
-----
Угу... читал когда-то давно. Пользоваться, правда, не приходилось.
Murr коренной житель15.08.09 13:45
Murr
NEW 15.08.09 13:45 
в ответ voxel3d 15.08.09 11:59
но я не упирался в это ни разу, так и не понял, врут или нет.
------
Эээ... Я упирался... правда не в объемах, а в количестве/сложности создаваемых объектов.
Реально притормаживает... хотя, возможно, просто Я был уработанный и писал глупости...
Murr коренной житель15.08.09 13:48
Murr
NEW 15.08.09 13:48 
в ответ voxel3d 15.08.09 11:59
отсутствие множественного наследования классов
------
В Си-Билдере и так не было множественного наследования - так что Я и не заметил...
  scorpi_ скептик15.08.09 13:58
NEW 15.08.09 13:58 
в ответ Murr 15.08.09 13:35
В ответ на:
Хммм... понимаю, что на смарт-поинтере это работает.
Но как это должно работать на двух простых указателях на один и тот же объект - не представляю.

Это работает в том случае, если компайлер предоставляет поддержку. Типа так: http://msdn.microsoft.com/en-us/library/ms177194%28VS.80%29.aspx или так http://gcc.gnu.org/onlinedocs/gcc/Type-Traits.html
При чём тут два указателя - мне совершенно непонятно.
Murr коренной житель15.08.09 14:22
Murr
NEW 15.08.09 14:22 
в ответ scorpi_ 15.08.09 13:58
При чём тут два указателя - мне совершенно непонятно.
-----
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.
Ссылка на Managet C++ с его CLR несколько некорректна - CLR практически уравнивает
Шарп с Плюсами в .NET...
Гнусню версию пока не смотрел.
  Chipolino свой человек15.08.09 14:49
NEW 15.08.09 14:49 
в ответ scorpi_ 14.08.09 23:41
В ответ на:
В чём это выражается?

Одна якобы "кроссплатформенна" ( да, есть на свете люди для которых это важно) ,
ну а остальные - вечнодогоняющие, плюс возможные проблемы с лицензией.
  Chipolino свой человек15.08.09 15:00
NEW 15.08.09 15:00 
в ответ Murr 15.08.09 14:22
В ответ на:
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.

Ниасилил...
  scorpi_ скептик15.08.09 15:11
NEW 15.08.09 15:11 
в ответ Murr 15.08.09 14:22
В ответ на:
При том, что "удобство" С++ деструктора сводится на нет при необходимости отслеживать количество существующих указателей на объект.

shared_ptr/weak_ptr в помощь.
В ответ на:
Ссылка на Managet C++ с его CLR несколько некорректна - CLR практически уравнивает Шарп с Плюсами в .NET...

А если повнимательнее прочитать?
Murr коренной житель15.08.09 15:13
Murr
NEW 15.08.09 15:13 
в ответ Chipolino 15.08.09 15:00
Ниасилил...
-----
Не проблема.
  scorpi_ скептик15.08.09 15:14
NEW 15.08.09 15:14 
в ответ Chipolino 15.08.09 14:49
В ответ на:
Одна якобы "кроссплатформенна", ну а остальные - вечнодогоняющие

Это как бы не проблема данной имплементации. А то ведь можно сказать, что gcc - отстой, потому что mingw - вечнодогоняющий.
  Chipolino свой человек15.08.09 15:30
NEW 15.08.09 15:30 
в ответ scorpi_ 15.08.09 15:14
В ответ на:
Это как бы не проблема данной имплементации.

Проблема .NET .
В ответ на:
А то ведь можно сказать, что gcc - отстой, потому что mingw - вечнодогоняющий.

Тан совсем другая ситуация :-)
gcc 4.4 уже есть
  Chipolino свой человек15.08.09 15:32
NEW 15.08.09 15:32 
в ответ scorpi_ 15.08.09 15:11
В ответ на:
shared_ptr/weak_ptr в помощь.

Мне нужен переводчик с языка Мура .
  Chipolino свой человек15.08.09 15:36
NEW 15.08.09 15:36 
в ответ Murr 15.08.09 14:22
В ответ на:
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.

Зачем создавать циклические ссылки и полагаеться на деструктор ?
Murr коренной житель15.08.09 15:39
Murr
NEW 15.08.09 15:39 
в ответ scorpi_ 15.08.09 15:11
shared_ptr/weak_ptr в помощь.
-----
да, разумеется, но не plain/dumb. Грубо говоря - любые обертки, но не стандартный (void *);.
В Шарпе же с этим проблем вообще нет - GC найдет и удалит мусор... издержки - да, но сейчас
рассматриваем с точки зрения удобства.
А если повнимательнее прочитать?
-----
Может позднее. Сейчас голова слишком тяжелая для новых концептов.
Murr коренной житель15.08.09 15:41
Murr
NEW 15.08.09 15:41 
в ответ Chipolino 15.08.09 15:32
Мне нужен переводчик с языка Мура .
-----
Адаптируйся...
Murr коренной житель15.08.09 15:45
Murr
NEW 15.08.09 15:45 
в ответ Chipolino 15.08.09 15:36
Зачем создавать циклические ссылки и полагаеться на деструктор ?
------
Гы... Объясни это в терминах Шарпа...
В нем просто не этих проблем. Т.е. - в Шарпе - удобнее.
voxel3d коренной житель15.08.09 15:54
voxel3d
NEW 15.08.09 15:54 
в ответ Murr 15.08.09 13:48
В ответ на:
В Си-Билдере и так не было множественного наследования - так что Я и не заметил...

Сибилдер поддерживал множественное наследование. VCL и С++ не путаем.
Dropbox - средство синхронизации и бэкапа файлов.
Murr коренной житель15.08.09 18:21
Murr
NEW 15.08.09 18:21 
в ответ voxel3d 15.08.09 15:54
не путаем
------
Может и так. Давно не пользовался...
  scorpi_ скептик15.08.09 22:27
NEW 15.08.09 22:27 
в ответ Chipolino 15.08.09 15:30
В ответ на:
Тан совсем другая ситуация :-)
gcc 4.4 уже есть

Но по прежнему mingw поддерживает только классическую локаль...
  Chipolino свой человек16.08.09 01:30
NEW 16.08.09 01:30 
в ответ scorpi_ 15.08.09 22:27
В ответ на:
Но по прежнему mingw поддерживает только классическую локаль...

Как не прискорбно но из-за торможения gcc порта для винды, мне пришлось перейти на msvc ...
  scorpi_ скептик16.08.09 02:21
NEW 16.08.09 02:21 
в ответ Chipolino 16.08.09 01:30
Кстати, я не понял, при чём тут 4.4...
  Chipolino свой человек16.08.09 13:00
NEW 16.08.09 13:00 
в ответ scorpi_ 16.08.09 02:21
AlexOtt знакомое лицо16.08.09 16:23
AlexOtt
NEW 16.08.09 16:23 
в ответ Chipolino 16.08.09 01:30
а если использовать VS 2008 Team Edition, то получить полезную прибавку в виде static code analyzer
1 2 3 4 5 6 7 все