Visual basic
Хочу научится программировать, ради Hobby,
Нашол в нете множество Туториалов но не могу нигде найти саму программу.
Или она уге есть в Wondows.
Помогите начинаещиму.
1. Он устарел
2. Он изначально был кривой
3. Он стоит денег
Начни с Java. Приятный язык, все бесплатно.
Удобный транслятор качать здесь: http://snapshot.strana.de
В ответ на:1. Он устарел
Язык не устарел. То что Microsoft хочет деньги за его поддержку, еще не означает, что на нем нельзя учиться программировать.
В ответ на:2. Он изначально был кривой
Есть какие-то стандарты для измерения кривизны языка? Можно ссылочку?
В ответ на:3. Он стоит денег
Совсем не обязательно, есть и бесплатные варианты.
>Есть какие-то стандарты для измерения кривизны языка? Можно ссылочку?
Какие, нафик, стандарты? Естественно, он был изначально кривой! Какие парадигмы программирования он поддерживал?? Руки отрывать надо за такие языки. Там наследования даже не было. Приходилось агрегацией эмулировать. Это убожество работало со скоростью паровоза и код на н╦м приходилось уродский писать с бесконечными if-ами. Ограничение только на подключение ActiveX dll, использование variant там где надо и не надо, типизация вообще непонятно какая. На н╦м только домохозяек учить неправильному программированию.
А если говорить о VB.Net, это уже совсем другой язык, вполне вменяемый, возможности которого не уступают C#. Но синтаксис.. И ограничение одной единственной платформой.
---
Идиотов и фриков перевоспитать невозможно!

А если еще и Delphi взять...
Это не причина. Отсутствие динамических массивов, и то, что тип массива зависит от его размера - это причины, которые дисквалифицируют Паскаль в качестве серьёзного языка программирования.
Как там вообще нормальный контейнер-то сделать?

I did it my way
Я имел в виду Pascal vs C.
А Pascal vs C++ это не серь╦зно.


---
Идиотов и фриков перевоспитать невозможно!
В ответ на:Руки отрывать надо за такие языки. Там наследования даже не было.
Тогда надо отрывать руки Кернигану, Ричи, Вирту и т.д.
Не путайте процедурные языки и объектно-ориентированные.
В ответ на:... код на нём приходилось уродский писать с бесконечными 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
ООП имеет право на существование. И много где его применение оправдано. Равно как и процедурного программирования. Уметь только процедурное программирование использовать, это глупо. Язык который имеет кривую поддержку ООП не предназначен для обучения. О ч╦м и говорилось.
>а также в 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 придется...


Мы вроде говорим о реальных языках, а не о выдуманных. А если ты на самом деле говоришь о Паскале, то в нем нет ни TObject, ни классов, ни нетипизированных Pointer'ов - это нестандартная фича Борланда.
В ответ на:Чего нет? new нет? Можно написать new(type, var). Только с type проблема. Можно было бы сделать TObject, но простые типы не выведены из класса, так что нужно или их переписать или делать дополнительную проверку - что передается. А возвращать видимо pointer придется... А кто сказал что легко будет?
I did it my way
