Что хорошего появилось в Дельфи:
1. Шаблонизация
2. Полная поддержка Unicode
3. Анонимные методы
4. Куча новых поддерживаемых БД
5. Web решения
+ нативность по моему мнению — это очевидный плюс, т.к. с .NET не все так гладко при подготовке shareware продуктов (фреймворк многое запрещает по умолчанию на конечных машинах)
Здравствуйте, diatlov, Вы писали:
D>Обсудим все + и — ?
D>Что хорошего появилось в Дельфи: D>1. Шаблонизация
Ух ты! А это што такое?
D>2. Полная поддержка Unicode
Аллилуя! Не прошло и 10 лет.
D>3. Анонимные методы
Ну нифига себе! Вот это да! Так, глядишь, и C# 2 через лет 5 догонит.
D>4. Куча новых поддерживаемых БД
Прямо таки куча. Еще дымящаяся?
D>5. Web решения
Афигеть! Это новость. Для дельфи .
D>+ нативность по моему мнению — это очевидный плюс, т.к. с .NET не все так гладко при подготовке shareware продуктов (фреймворк многое запрещает по умолчанию на конечных машинах)
Давайте нативность оставим С++. А дельфи — в топку.
+1
D>>2. Полная поддержка Unicode
___>Аллилуя! Не прошло и 10 лет.
Дело не в том сколько лет прошло, а в том что это есть, и это несомненный плюс.
D>>3. Анонимные методы
___>Ну нифига себе! Вот это да! Так, глядишь, и C# 2 через лет 5 догонит.
D>>4. Куча новых поддерживаемых БД
___>Прямо таки куча. Еще дымящаяся?
В каком ещё языке по умолчанию есть полнофункциональный набор компонентов для управления ADO, MSSQL, MySQL, Oracle, BDB, и т.д.?
D>>5. Web решения
___>Афигеть! Это новость. Для дельфи .
Не поверите — новость. Значительные улучшения и добавления по сравнению с предыдущими версиями.
D>>+ нативность по моему мнению — это очевидный плюс, т.к. с .NET не все так гладко при подготовке shareware продуктов (фреймворк многое запрещает по умолчанию на конечных машинах)
___>Давайте нативность оставим С++. А дельфи — в топку.
Тут сравнение идет не с C++, а с C#, потому как C++ все таки уступает обоим в плане RAD GUI. А по моему мнению, так Delphi ещё и фору в этом плане всем дает.
Нативность оставить для C++ — это, по моему, зомбирование программистов. Есть такое выражение "Keep It Simple" (KISS если знаете ). Если мне удобно что-то сделать на Delphi, то я не буду использовать C++ только из-за того что он более продвинутый в плане использования WinAPI и возможности вручную рихтовать память.
[]
___>>Давайте нативность оставим С++. А дельфи — в топку.
D>Тут сравнение идет не с C++, а с C#, потому как C++ все таки уступает обоим в плане RAD GUI. А по моему мнению, так Delphi ещё и фору в этом плане всем дает. D>Нативность оставить для C++ — это, по моему, зомбирование программистов. Есть такое выражение "Keep It Simple" (KISS если знаете ). Если мне удобно что-то сделать на Delphi, то я не буду использовать C++ только из-за того что он более продвинутый в плане использования WinAPI и возможности вручную рихтовать память.
Delphi — RAD GUI? Ды вы видели этот гуй? Я RAD Studio видели? Как посмотрите — приходите.
Здравствуйте, diatlov, Вы писали:
D>>>2. Полная поддержка Unicode
___>>Аллилуя! Не прошло и 10 лет.
D>Дело не в том сколько лет прошло, а в том что это есть, и это несомненный плюс.
Здравствуйте, diatlov, Вы писали: D>В каком ещё языке по умолчанию есть полнофункциональный набор компонентов для управления ADO, MSSQL, MySQL, Oracle, BDB, и т.д.?
Давайте с другого конца укусим? Какие сложности работы с перечисленными СУБД есть в .NET (java, python, ruby, lisp, свой вариант) и нет в дельфи?
Здравствуйте, diatlov, Вы писали:
D>Что хорошего появилось в Дельфи: D>1. Шаблонизация D>2. Полная поддержка Unicode D>3. Анонимные методы
Вы уверены, что этого достаточно, чтобы delphi как язык сравнивать с C# 3.0 как языком?
Здравствуйте, diatlov, Вы писали:
D>Что хорошего появилось в Дельфи: D>1. Шаблонизация D>2. Полная поддержка Unicode D>3. Анонимные методы D>4. Куча новых поддерживаемых БД D>5. Web решения
А что тут обсуждать-то? Это едва дотягивает до C# 2.0, который вышел аж 4 года назад. Так что сравнение будет некорректным и заведомо проигрышным для дельфей.
Здравствуйте, Трурль, Вы писали:
Т>Здравствуйте, Mr.Cat, Вы писали:
Colon Operator
This is essential to our nullable support, but it is also a surprisingly useful feature for general coding. Basically, instead of using "." to access members and get an NullReferenceException if they are nil, use ":" and the call will be skipped for nil (and the result will be nil itself). For example:
IDisposable(SomeObject):Dispose; // only call dispose if the interface is implemented
x := Button:Parent:Parent:Parent // access the 3rd parent of a control, where any level might be nil.
на фичу не тянет
Inline Property Accessors
Define simple properties within the class declaration, without any extra setter/getters.
property Foo: String; // local field is implied;
property Right: Int32 read Left+Width; // reader expression is provided in line
Autoptoperties in c# 3.0?
"implies" operator
This is mostly helpful for invariants or pre/post-conditions. Basically, the second part only "needs" to be true if the first is; if the first is false, the entire expression is true. this sounds odd, but consider
require
assigned(Customer) implies Customer.CreditRatio > 5;
this translates too
require
(NOT assigned(Customer)) OR (Customer.CreditRatio > 5);
the above is much more readable.
Гм. Жесть. 2 ключевых слова ради непойми чего.
"case type of"
Write a switch/case statement that executes different cases depending on the TYPE of a certain object, i.e.
case type MyControl of:
Edit: // do something
Button: // do something else
end;
anything else? я прям без этого жить не мог
Property Notifications
These save a lot of boilerplate code. Attach the "notify" keyword to a property as directive (like "virtual"), and the compiler generates all the infrastructure and interfaces needed for property notifications to work (in C#, you'll need to implement getters/setters, add interfaces to the class, etc).
[q]
wow!
Enhanced Nullable Types
Unlike C#, the Delphi Prism compiler provides full support for nullable types. You can call their members and use them in expressions; there's extensive support for nullable expressions — if any part that contributes to an arithmetic expression is "nullable", the whole expression becomes nullable. if any part IS null, the whole expression becomes null. For example:
x: nullable Int32;
y: Int;
var a := x+y; // result is a nullable Int32;
var b := 5*x; // if x is null, so is b.
[/q]
wtf???
improved 'for each' loop
for each matching x: Button in Controls do // only run loop for buttons
// use i to count; also type of x is inferred automatically from type of "Controls", if its a generic enum
for each x in Controls index i do
мда....
'locked' directive
The locked directive allows methods, events and properties to be declared implicitly thread safe.
эмм...
Extended Constructor Calls
Set properties as part of the constructor call. This is especially useful if you're not assigning to a local ref. For example:
Controls.Add(new Button(Width := 100; Height := 50));
without this, you; would need a temp var for the button.
c# 3.0
Boolean Double Comparison
if 0 <= x < Count then //...
я чета не припомню, чтобы мне это было нужно?
Iteration delegation
The yield keyword supports delegation of the iterator to a second sequence.
no comments
Empty Methods
Supply the 'empty' directive on a method's interface declaration and you dont need to define the empty method body.
Exception Filters
Catch selective exceptions not only based on type, but also based on any arbitrary condition (supported by VB.NET but not C#).
raising/firing events
You can specify the visibility for raising/firing events. in C#, only the class that defines an event can fire it (from outside you can only add/remove handlers). in Delphi Prism, you can write the following and descendants can fire the event:
public
event Foo:EventHandler protected raise;
эммм....
Единственное, что заслуживает внимание, так это Class Contracts.
Зачем нам очередной клон c#, да еще и убогий?
Ребята, уберите var block! Хотя зачем? Ведь тогда оно умрет
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, Константин Л., Вы писали:
КЛ>>
КЛ>>Boolean Double Comparison
КЛ>>if 0 <= x < Count then //...
КЛ>>я чета не припомню, чтобы мне это было нужно? WH>А что код типа: WH>
WH>if (0 <= x && x < Count)
WH>
WH>Никогда не писал?
представляешь, не писал так давно, что пришлось открывать стадион и проверять, что это не компилиццо
WH>А вобще все эти феньки либо уже сделаны в немерле макросами либо делаются на раз.
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, diatlov, Вы писали: D>>В каком ещё языке по умолчанию есть полнофункциональный набор компонентов для управления ADO, MSSQL, MySQL, Oracle, BDB, и т.д.? MC>Давайте с другого конца укусим? Какие сложности работы с перечисленными СУБД есть в .NET (java, python, ruby, lisp, свой вариант) и нет в дельфи?
Ну к примеру визуализации не хватает. В C# с этим правда попытались бороться, но все равно многовато вылезает компонент для связи с данными против одного-двух в Delphi.