|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
Чем по мнению сишников с плюсами VB "недоделанный" как объектно-ориентированный язык. Что ему не хватает? Написал тут программку небольшую с использованием своих классов,показалось мне,что есть все что надо. Но правда опыта мало по этому вопросу? Но не понравилось что в Class Builder после создания методов ,свойств и событий их нельзя изменить или редактировать, только вручную код лопатить!!!??? Вот. Ответьте , зубры ООП в VB. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2003, 13:34 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
в VB нет наследования и полиморфизма. нет конструкторов (Initialize - это пародия на конструктор) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2003, 14:47 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
Но ведь можно создать класс на базе другого. Это не наследование ? //(Initialize - это пародия на конструктор) А почему пародия, что такое особенное в конструкторах с++. При создании объекта VB-шный Initialize вроде может набацать что нужно. Я 6 лет сидел на процедурных принципах программирования , а сейчас вот ООП юзаю. Вообщем то достоинств у ООП хватает,но все говорят ,что его реализация на VB -" подосланная". Полиморфизм это вроде использование одних и тех же определенных методов разными классами (если не путаю). Так уж это важно? По сути дела ООП просто группировка тех же самых процедур и функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2003, 15:50 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
Но ведь можно создать класс на базе другого. Это не наследование ? внешне похоже, по сути - нет. Язык(компилятор) ничего не знает о взаимосвязи этих двух КЛАССОВ (не объектов), соответственно ничего не может контролировать - все на твоей совести. //(Initialize - это пародия на конструктор) А почему пародия, что такое особенное в конструкторах с++. При создании объекта VB-шный Initialize вроде может набацать что нужно. главная особенность - это возможность передать пераметры в этот самый конструктор. Можно конечно, сначала созать объект, а потом вызвать какой-то его метод и передать нужные параметры инициализации. Но опять-же компилятором никак не контролируется выполнил ты второй шаг или нет. Элементарно просто забыть его написать. Я 6 лет сидел на процедурных принципах программирования , а сейчас вот ООП юзаю. Вообщем то достоинств у ООП хватает,но все говорят ,что его реализация на VB -" подосланная". я с ними согласен, но тем не менее, это не мешает мне зарабатывать на жизнь с помощью VB. Иногда с тоской посмотрю в сторону С++, вечерком посижу для души, а утречком - за VB, потому, что для _моих_ задач это самый эффективный инструмент. Полиморфизм это вроде использование одних и тех же определенных методов разными классами (если не путаю). Так уж это важно? каждый решает для себя. В моих приложениях - не важно. На мой взгляд, в VB реализован минимальный джентельменский набор OOП, который является вот этим: По сути дела ООП просто группировка тех же самых процедур и функций. Твое мнение вызвано тем, что ты идешь к ООП через VB. На самом деле все намного лучше :-) Почитай что-то сишное, хоть того-же Стауструпа. Если в синтаксис не вникать, то все идеи ООП можно почерпнуть оттуда. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 11:28 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
А вот вроде в VB.NET ООП на уровне. Не доводилось правда работать на VB.NET. Там хоть что нибудь от старого VB по части ООП осталось или все перелопатили? Коллеги говорят, что переходить на VB.NET пока нет большого смысла и я с ними почти согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 15:12 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
по поводу .Net не знаю, не пробовал. Но слышал, что действительно вроде в VB.NET ООП на уровне а по поводу перехода на vb.Net, то насколько я смог понять рекламу, то это переход не просто с языка на язык, а переход на совершенно другую технологию, причем в ней особо большой разницы между языками нет (что С#, что VB.Net - одинаково, разница только в синтаксисе.) Но все равно это только понаслышке - ну не ел я этих устриц. А бросать изученный вдоль и впоперек, и главное востребованный инструмент я считаю глупо - за Microsoft все равно не угонишься, а будешь только тем и заниматься, что изучать ее нововведения и разгребать ошибки и недоработки за свой счет. Если только начинаешь изучать, и выбираешь куда устремиться, то естественно, надо выбирать самое передовое, что есть на данный момент и рости вместе с ростом выбранной технологии - детство-отрочество-юность-зрелость. А потом по-новой. Как правило за это время сменится две - три новомодных технологии, которые и умирают обычно с такой-же скоростью как и появляются. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 18:03 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
программирую на VB недавно, раньше использовал только BCPP или MSVC заинтересовался вашим топиком потому, что никак не могу понять как транслятор (или компилятор) языка VB, память после использования освобождает. все понимаю - есть New, отлично.... но нет Delete и нет Деструкторов.... Помниться Был на одной из презентации Net Framework так там мелкомягкие специалисты говорили что особо беспокоиться по этому поводу не надо, все равно памяти сейчас на машинах много - это вам не 20 лет назад и т д. Если кто знает расскажите или отошлите куда-нибудь... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 18:14 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
там все очень просто. У каждого объекта при его создании VB создает счетчик ссылок на этот объект. Как только этот счетчик становится равным нулю, объект уничтожается автоматом. Счетчик управляется исключительно самим VB. Это один из основных источников утечки памяти, и сопровождается зависанием и приложения в памяти даже после закрытия всех окон приложения. Искать такую ошибку ОЧЕНЬ неприятно. К стати, одно пренеприятнейшее следствие - два взаимноссылающихся друг на друга объекта навсегда зависают в памяти. Никаким способом эту ситуацию не разрешить, кроме как перепроектированием структуры объектов. Внешне это проявляется тем, что приложение из памяти выгружается только через TaskManager, тоесть аварийно и в открытых формах код событий Terminate, Unload не выполняется.... В "Крепком орешке" описан способ как этого избежать, но там можно запросто систему завалить - прямой доступ к памяти в защищенном режиме, да еще и из VB - думаю дальше продолжать не надо? :-) С другой стороны, если аккуратно избегать таких ситуаций, то о выделении памяти голова не заморачивается - все делается автоматом и достаточно красиво и надежно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 18:38 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
хорошо, как же тогда избежать того чтобы небыло взаимных ссылок между объектами... ситуация такая создаем объект А объект А где-то по ходу программы создает объек B а объекту B ну очень-очень нужно обратиться к полям объекта A.... как мне кажется - очень распространенная ситуация... как здесь обойтись без взаимных ссылок? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 18:46 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
Если сравнить по количеству написанного текста программы на VB.NET и C# , то где меньше кода уйдет? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2003, 09:41 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
Практически монорельсово. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2003, 09:58 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
2Александрик: описанная тобой ситуация как раз не создает взаимной ссылки. взаимная ссылка получается вот так: в объекте А есть объектная переменная уровня модуля, которая ссылается на объект В. А в объекте В есть объектная переменная уровня модуля, которая ссылается на объект А. Пока хотя-бы одна из этих переменных не станет Nothing, оба объекта будут оставаться в памяти. Решается это только с помощью перепроектирования объектной модели, либо второй вариант - в одном из классов создается метод, который присваивает объектным переменным уровня модуля значение Nothing. Этот метод надобно вызывать вручную _перед_ выгрузкой объекта. Этот вариант - не более чем заплатка, которую можно применить когда менять что либо уже поздно. Но _изначально_ 100% лучше избегать этих ситуаций. По идее, эту ситуацию может еще решить оператор END (не проверял), но это все равно, что стопкран на Шатле :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2003, 13:22 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
Полностью согласен с Hibernate. Многие наезжают на VB за то,что якобы он простой. Я с этим не согласен.На самом деле простота VB обманчива. Например у нас те кто пишет на VC++ считает тех ,кто пишет на VB юзерами. Как услышит наш спец ,что приложение на VB сделано сразу говорит -это говно.Меня эта категоричность всегда бесила (как и споры про какой язык лучше).Но спорить , что лучше просто бессмысленно. Например по скорости разработки приложения VC++ в жопе , ну естественно от задачи и подготовки программиста зависит, но в среднем на VB на порядок быстрей можно забацать. ООП позволяет легче справляться с большими или ультрабольшими программами и для этого его придумали. Применять ООП при создании несложных и средних программ не всегда уместно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2003, 13:23 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
2Бобер Например у нас те кто пишет на VC++ считает тех ,кто пишет на VB юзерами. у нас таких принято увольнять, будь программист на VB или на C или еще на чем. Я считаю (но никогда не называю) юзерами тех, кто применяет средства, неадекватные поставленной задаче. Хотя тут тоже есть плюс-минус (например, я в данный период своей трудовой деятельности больше "в теме" VB, поэтому для некоторых задач, где VB не совсем эффективен, иногда все-таки эффективнее применить VB, а не восстанавливать свою квалификацию например, сишника и применять VС++) По моему опыту, в современном бизнес-программировании важен не инструмент, а связка программист-инструмент. Причем роль программиста, его опыта и трезвости взгляда на мир - определяющая. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2003, 14:09 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
другой вопрос, что благодаря внешней простоте, в VB приходит очень много дилетантов, которые будут дилетантами в чем угодно, потому, что они дилетанты по своей внутренней природе. Поэтому я признаю, что если программа написана на VB, то вероятность того. что она окажется поделкой - намного выше, чем если бы она была написана на С. Это совсем не страхует от того. что сишная программа кажется поделкой. Это тоже очень даже возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2003, 14:13 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
Ну юзерами я к слову сказал! Но наши сишники считают, что настоящие программеры пишут только на си,а тех кто пишет на другом за программеров не считают. Ну и дураки. У программистов (ну не у всех конечно)со временем иногда появляется нехорошая черта,которая называется спесивость.И они мнят всех идиотами. Обычное явление.У нас таких просто как грязи. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2003, 15:06 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
Это злобствующие дилетанты. Не обращай внимания - большего они не стоят. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2003, 15:27 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
уже вроде все обсуждалось - писать надо на том, что лучше знаешь а С-шников хочу осадить немного, у нас есть один монстр, который на масм пишет даже клиентов для SQL Server'а, так он смется над сишниками =))) и тоже называет ихнее проги нехорошими словами ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2003, 10:12 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
Ну полный улет!!! Хороший друг у Smile!!! На слив сишников!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2003, 10:20 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
Вы говорите нет дуструкторов, а это что по вашему? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2003, 13:30 |
|
ООП в VB, а что в нем не так???
|
|||
---|---|---|---|
#18+
Это пример не от Visual Basic, а VB.NET. Это совсем разные языки. Кроме того, Finalize - это не совсем деструктор в привычном понимании. Во-первых, в нем не все можно делать с методами и полями объекта, а во вторых, попробуй вызови его явно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2003, 19:49 |
|
|
start [/forum/topic.php?fid=60&fpage=402&tid=2170736]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 159ms |
0 / 0 |