Visual basic
А в Паскале они были? Это в Дельфи появился тип Pointer...

п.с. Просто любопытно. Ты бустом пользуешься?
а как же

I did it my way
В ответ на:Руки отрывать надо за такие языки. Там наследования даже не было.
Тогда надо отрывать руки Кернигану, Ричи, Вирту и т.д.
Не путайте процедурные языки и объектно-ориентированные.
В ответ на:... код на нём приходилось уродский писать с бесконечными if-ами.
Речь шла о Visual Basic, а в нем, как известно, есть и case, и while и другие управляющие констрикции.
В ответ на:Ограничение только на подключение ActiveX dll
Он прекрасно работает и с CОМ, и с COM+.
В ответ на:использование variant там где надо и не надо
Это характерузует программиста, а не язык.
В ответ на:типизация вообще непонятно какая
Обычная Integer, Long, String usw. Что еще надо, чтобы встретить старость?
В ответ на:На нём только домохозяек учить неправильному программированию.
Неправильному программированию можно
научить на любом языке, а вот научить правильно программировать на том же басике, задача не простая.
А достоинства и недостатки есть в любом языке.
В ответ на:А если говорить о VB.Net, это уже совсем другой язык, вполне вменяемый, возможности которого не уступают C#. Но синтаксис.. И ограничение одной единственной платформой.
Принципиальных отличий в синтаксисе не заметил, как впрочем к своему стыду не знаю других платформ кроме .NET, где работает C#
Но у Борландов Pointer был ещ╦ до Delphi. В BP7 точно был.
Тогда попытка N2.


---
Идиотов и фриков перевоспитать невозможно!
А я и не путаю. Кто, VB был процедурным?? А что там классы делают? Он поддерживал процедурную парадигму и кастрированно объектно-ориентированную.
>>код на н╦м приходилось уродский писать с бесконечными if-ами.
>Речь шла о Visual Basic, а в нем, как известно, есть и case, и while и другие управляющие констрикции.
Имеется в виду отсутствие наследования и полиморфизма, в результате чего его приходилось эмулировать, а вовсе не не отсутствие других конструкций ветвления.
>>типизация вообще непонятно какая
>Обычная Integer, Long, String usw. Что еще надо, чтобы встретить старость?
Классика:
Dim str As String
Dim n As Long
...
n = str
Ничего странного не видите?
А здесь:
Dim obj As Object
Din myobj As Object2
...
Set myobj = obj
Здесь если непонятно, опасное неявное преобразование от базового класса к наследнику.
>Неправильному программированию можно научить на любом языке, а вот научить правильно программировать на том же басике, задача не простая.
На каком-нибудь Питоне научить программированию и культуре программирования гораздо проще. А ВБ своей "упрощ╦нностью" научит писать непонятно как.
>Принципиальных отличий в синтаксисе не заметил, как впрочем к своему стыду не знаю других платформ кроме .NET, где работает C#
Так он только на дотнете и работает. Вот только .Net существует лишь в виндовсе.
---
Идиотов и фриков перевоспитать невозможно!

А вот "одни шаблоны" ну зачем так Паскаль обижать?

а как же Пользуюсь конечн
Видимо безостановочно пользуешься. В С++ тоже нет динамических массивов. Или возможность обращения через указатель с индексом автоматически делает из указателя массив?
Kонтейнеры нужны практически всегда. Основанные на каком-нибудь TArrayList нетипобезопасны. Вот и все дела.
> да и пользоваться ими не совсем просто, если задача не сводится к написанию класса вектора для float и int...
Шаблоны не самая простая тема, но элегантность и мощь того, что получается при их использовании, стоят всех усилий. Вот, смотри, здесь текст читается из одного файла, преобразуется к нижнему регистру и записывается в другой:
#include <iterator>
#include <fstream>
using namespace std;
struct lower : unary_function<char,char>
{
char operator()(char c)const
{ return tolower(c,0); }
};
int main(int,char**)
{
ifstream is("source_file",0);
istream_iterator<char> ii(is),eos;
ofstream os("dest_file",0);
ostream_iterator<char> oo(os,0);
transform(ii,eos,oo,lower(),0);
return !is.eof() || !os;
}
что, слишком сложный код получился? Или слишком примитивный пример для демонстрации?
---
Идиотов и фриков перевоспитать невозможно!
---
Идиотов и фриков перевоспитать невозможно!
В ответ на:Он поддерживал процедурную парадигму и кастрированно объектно-ориентированную.
Я бы вообще убрал объектно-ориентированную, это была только попытка.
В ответ на:Dim str As String
Dim n As Long
...
n = str
Как раз про это я речь и вел. Если научить человека, что нужно писать n=Clng(str), то он так и будет писать. Да, к сожалению, компилятор это проглатывал, не поперхнувшись, но BASIC то для других целей задумывался. Это сейчас он в ООП вырос.
В ответ на:Вот только .Net существует лишь в виндовсе.
, а также в Linuxe и других ОСях под Моной.
template< class Ch >
class lower : public std::unary_function< Ch, Ch >
{
std::locale const& loc_;
public:
lower( std::locale const& loc = std::locale() ) : loc_(loc) { }
Ch operator()( Ch c ) const
{
return std::tolower( c, loc_ ,0);
}
};
Почему не следует в данном контексте использовать сишную функцию
int tolower(int)
- читать здесь http://groups.google.com/groups?hl=de&lr=&threadm=5go4cs$10@netlab.cs.rpi.edu&rn...
(ещё один интересный топик на данную тему - http://groups.google.com/groups?hl=de&lr=&threadm=7tftn0$1a1$1@nnrp1.deja.com&rn...)
I did it my way
И каким же образом boost это меняет?

В С++ тоже нет динамических массивов.
Ну покажи мне аналог из Паскаля для new int[n]


I did it my way
ООП имеет право на существование. И много где его применение оправдано. Равно как и процедурного программирования. Уметь только процедурное программирование использовать, это глупо. Язык который имеет кривую поддержку ООП не предназначен для обучения. О ч╦м и говорилось.
>а также в Linuxe и других ОСях под Моной
Только, вот, проблемы у народа с переносимостью. Да и microsoft не имеет никакого отношения к mono, а когда они (microsoft) что-то поменяют в .Net-e вот, тогда совсем весло станет.
---
Идиотов и фриков перевоспитать невозможно!
Использование != написание

А вообще мне сложно представить себе более-менее серьёзную программу не использующую стандартные контейнеры...
I did it my way
---
Идиотов и фриков перевоспитать невозможно!
Скорее второе, использовать STL довольно просто, можно даже не знать ничего о шаблонах. В принципе необходимость изобретения очередного велосипеда редко возникает... но я бы посмотрел на твою реализацию VoxelSTL

Где-то на середине книги Modern C++ я понял, что пора начинать читать ее заново.

Немного туманит голову, вот надо отнять у тебя boost и посмотреть что будет

Или ещё лучше - запрограммируй в Паскале аналог std::vector
На TP я за такую задачу не берусь, а вот на Object Pascal более-менее похожего инвалида можно сделать, конечно с большими ограничениями. Но я же не кричу, что Паскаль - язык всех времен и народов!

аналог из Паскаля для new int[n]
Если не придиратся к синтаксису, то особых проблем нет.
В ответ на:Язык который имеет кривую поддержку ООП не предназначен для обучения.
Я учился по большой голубой С до Страуструпа и ничего живой.
В ответ на:Да и microsoft не имеет никакого отношения к mono, а когда они (microsoft) что-то поменяют в .Net-e вот, тогда совсем весло станет.
Дело в том, что .NET был мелкомягкими застандартизован. Мона делается на основе стандарта. Если МС зарегистрирует новый стандарт, то мона тоже может дальше развиваться. Но глобальной революции в .NET пока не предвидиться.
ничего не будет. Вот если отнять standard library - тогда я обижусь не на шутку

Если не придиратся к синтаксису, то особых проблем нет.
Ни в стандартном паскале, ни в extended такого нет.
I did it my way
Да?


Ни в стандартном паскале, ни в extended такого нет.
Чего нет? new нет? Можно написать new(type, var). Только с type проблема. Можно было бы сделать TObject, но простые типы не выведены из класса, так что нужно или их переписать или делать дополнительную проверку - что передается. А возвращать видимо pointer придется...

