jangle писал(а):Почему Майкрософт отказывается возродить VB6 ?
jangle писал(а):Зачем упорно развивать непопулярный VB.NET?
jangle писал(а):Ведь есть мегапопулярный C# который делает существование VB.NET бессмысленным.
Хакер писал(а):Всех надо пересадить на мобильные устройства, всё надо перенести в облака, скоро ничего не останется кроме тач-панелей и устройств виртуальной/дополненной реальности
Хакер писал(а):надо обогнать Apple
Qwertiy писал(а):Что в нём реально такого, из-за чего стоило бы использовать именно его?
Qwertiy писал(а):потоков нет
Qwertiy писал(а):указателей нет
Qwertiy писал(а):наследования нет (только реализация интерфейса)
А смысл его возрождать?
Хакер писал(а):Это паттерн «декоратор».
Хакер писал(а):COM-основанность. Много ли языков, в которых COM-класс — гражданин первого типа?
Хакер писал(а):И большая RAD-ность. Реально, прототип чего-то на нём написать быстрее, чем на чём-то другом.
Хакер писал(а):Пока среда для дотнета откроется и соизволит что-то скомпилировать, VB6 скомпилирует дважды.
Хакер писал(а):И уникальная фишка всей системы: компиляция кода во время написания кода, а не во время нажатии кнопки «компилировать».
Хакер писал(а):уникальная широта возможности переписывать код во время отладки.
Хакер писал(а): Да и сделать ... поддержку ...
Хакер писал(а):И не надо. На полном серьёзе. Почему это зло ...
Хакер писал(а):Каким-то образом драйверы Windows успешно работают
jangle писал(а):За нативный код и высокую скорость работы я готов простить ему все. C# неуклюжий тормоз по сравнению с VB.
jangle писал(а):Но отсутствие 64-битного компилятора окончательно сводит VB6 со сцены.
Debugger писал(а):У общественности сложилось достаточно негативное отношение к Бейсику. Почему - не знаю.
Debugger писал(а):Считаю, что у Бейсика нет равных, если требуется написать мелкую утилиту/программу, на 99% состояющую из GUI/разовые программы.
Qwertiy писал(а):На .NET тоже можно создавать COM-классы. На Си++ можно. Кажется Qt имеет какую-то систему взаимодействия с COM - точно не знаю.
Qwertiy писал(а):32-битные программы можно изменять во время отладки на всех языках, достыпных в VS.
Qwertiy писал(а):Сделать можно всё. Особенно ты можешь сделать всё. Но я говорю именно о стандартных возможностях, а не о варианте, когда надо сначала ооочень постараться, чтобы что-то получить, а потом этим пользоваться.
Qwertiy писал(а):Ну и не понятно, как я указатели на функции (ну или делегаты) забыл - их тоже нет.
Qwertiy писал(а):Эм.. Что-то я не слышал, чтобы их на VB6 писали. Си и Си++ же, не?
http://www.tux.org/lkml/#s15-3 писал(а):
- Should the kernel use object-oriented programming techniques? Actually, it already does. The VFS (Virtual Filesystem Switch) is a prime example of object-oriented programming techniques. There are objects with public and private data, methods and inheritance. This just happens to be written in C. Another example of object-oriented programming is Xt (the X Intrinsics Toolkit), also written in C. What's important about object-oriented programming is the techniques, not the languages used.
Debugger писал(а):Если у класса десяток методов, и отдекорировать тебе нужно один, то код будет состоять из большого количества повторяющихся сегментов, проталкивающих вызов вниз по цепочке декорирования. Если понадобится изменить сигнатуру метода, или добавить ещё один, или сделать любое нечто в базовом классе, которое абсолютно не касается декораторов, то всё равно придется перелопачивать декораторы.
Хакер писал(а):Ты не поверишь, но и на ассемблере можно.
<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
Public Class ComClass1
#Region "Идентификаторы COM GUID"
' Данные GUID обеспечивают идентификацию COM для данного класса
' и его COM-интерфейсов. При их изменении существующие
' клиенты потеряют доступ к классу.
Public Const ClassId As String = "35b51c35-0aea-4d1d-9cae-ff0fd7c0a13a"
Public Const InterfaceId As String = "39710936-c3de-439d-a48f-769606f64e1d"
Public Const EventsId As String = "906993b4-ce88-42bb-9c6f-ef7c99e3041c"
#End Region
' В классе COM, для которого разрешено создание, должна присутствовать процедура Public Sub New()
' без параметров, иначе класс не будет
' зарегистрирован в реестре COM и его будет невозможно создать
' посредством CreateObject.
Public Sub New()
MyBase.New()
End Sub
End Class
которое исчезает при добавлении публичного метода.Предупреждение 1 Классу "ComClass1" назначен Microsoft.VisualBasic.ComClassAttribute, однако "ComClass1" не имеет открытых членов, которые могут быть использованы через COM, поэтому COM-интерфейсы не созданы. E:\...\VB.NET\Test - VB.NET Console app\ComClass1.vb 2
Хакер писал(а):Хороший показатель — immediate pane. Где-нибудь в новых C#/VB.NET есть? Нет, и быть не может.
Хакер писал(а):Я говорю с позиции разработчиков VB6, у которых есть исходный код.
Хакер писал(а):Да потому что это зло в рамках идеологии, которой придерживались создатели.
Хакер писал(а):Всё ядро Windows написано на Си, и тем не менее, оно объектно-основанное.
Qwertiy писал(а):Я не об этом. Да, для .NET'а COM-классы не являются основой. Тем не менее там есть возможность создания COM-классов из коробки:
Qwertiy писал(а):Исходников чего? Что-то я не понял эту мысль.
Qwertiy писал(а):Не знаю, что уж там внутри ядра, но в winapi объектноориентированностью как-то даже и не пахнет...
Хакер писал(а):Ты не поверишь, но и на ассемблере можно. А особо упоротые (намекаю на себя) могут меняя циферки в хекс-редакторе тоже сделать COM-класс. Только речь не о том, что что-то осуществимо. Да, на Си++ осуществимо. И на си без плюсов осуществимо.
При наличии исходников VB/VBA.
jangle писал(а):А можно пример COM - класса на ANSI C99 ?
Хакер писал(а):неужели не понятно, что это будет не-COM-класс, для которого инструмент подгонит соответствующую COM-обёртку, чтобы со стороны он выглядел как нормальный COM-класс
Хакер писал(а):При наличии исходников VB/VBA.
Хакер писал(а):jangle писал(а):А можно пример COM - класса на ANSI C99 ?
Создай отдельный топик в местном разделе по С/С++, будет время — набросаю.
Qwertiy писал(а):о_О
Тут даже ответить нечего.
jangle писал(а):ведь TLB он не создаст.
Qwertiy писал(а):Это понятно. Непонятно, почему это важно.
Debugger писал(а):Считаю, что у Бейсика нет равных, если требуется написать мелкую утилиту/программу, на 99% состояющую из GUI/разовые программы.
Хакер писал(а):Или я не понимаю, почему ты сначала упорно не мог понять, о каких исходниках речь, а когда понял, показываешь странные смайлы.
Хакер писал(а):Много ли ещё существует стандартов/соглашений для организации ООП, которые были бы языко- и платформо- независимыми, не зависели бы и от каких-то фреймвороком или библиотек
Хакер писал(а):да ещё к тому же, были бы такими, что им соответствует гигантская кодовая база (офисы, CAD-ы, даже медиакодеки, и DirectX и Outlook Express, и API софта, о котором вы даже не слышали).
Mikle писал(а):Мне в VB6 не хватает не столько полноценного наследования, сколько нормальных конструкторов с параметрами.
jangle писал(а):А есть конкурент на C# и WinForms под .NET 4, запускается секунд 30! Без шуток... Это у него так JIT работает. Медленно-медленно отрисовываются (уродливые дотнетовские) формочки и кнопочки, буквально порциями пикселей. Через минуту интерфейс наконец прочухается и позволит с собой работать, но опять открытие каждого нового окна - это новый вызов JIT и новые тормоза. Все это ужасно сильно бесит. Весь процесс тормозится в разы.. Это и это что прогресс?
Хакер писал(а):Qwertiy писал(а):Это понятно. Непонятно, почему это важно.
Много ли ещё существует ...
Qwertiy писал(а):Знаешь, у меня такое чувство, что это просто писал криворукий программист. Сложные формы отображаются достаточно быстро - никак не 30 сек. JIT компилирует только текущий исполняемый кусок, а не всё приложение за раз. Там никак не может быть минут. А вот кривой запрос (или сотня мелких запросов) к базе данных, да ещё и из ui'ного потока может повесить программу надолго.
На основании чего сделан вывод, что тут проблема именно в .NET'е?
Ну либо у тебя 100% памяти занято и там начинается жуткий своп, чтобы это дело запустить.
jangle писал(а):Я думаю все так медленно работает потому что IL-код обфусцирован в целях "защиты от взлома"
jangle писал(а):Все они работают медленнее нативных конкурентов.
Qwertiy писал(а):Ну, во-первых, программы на VB6 зависят от VB'шного рантайма.Хакер писал(а):Много ли ещё существует стандартов/соглашений для организации ООП, которые были бы языко- и платформо- независимыми, не зависели бы и от каких-то фреймвороком или библиотек
Платформонезависимость - это в каком смысле?
Qwertiy писал(а):Эм.. Не уловил связь с VB6. VBA вполне себе жив.
Qwertiy писал(а):Медленнее, но не сильно. Никак не минуты. И по идее, медленнее только при первом запуске соответствующего куска кода.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 44