01
од 08
Првих пет промена између ВБ 6 и ВБ.НЕТ

Висуал Басиц 1.0 био је велики потрес током програмирања. Пре ВБ1, морали сте користити Ц, Ц ++ или неко друго грозно развојно окружење да бисте креирали Виндовс апликације. Програмери су буквално проводили недеље само цртајући прозоре на екранима са избирљивим, детаљним, тешким за уклањање грешака. (Иста ствар коју можете учинити превлачењем обрасца са траке са алаткама у неколико секунди.) ВБ1 је био пун погодак и газиллиони програмера су одмах почели да га користе.
Али да би се магија догодила, Мицрософт је направио неке велике компромисне архитектуре. Конкретно, с обзиром да је ВБ1 креирао обрасце и контроле, нису дозволили програмеру приступ коду који је то учинио. Или сте дозволили ВБ-у да створи све, или сте користили Ц ++.
ВБ 2 до 6 одржавали су исту архитектуру. Мицрософт је направио неколико веома паметних ажурирања која су програмерима дала много више контроле, али у коначној анализи програмери још увек нису могли да интегришу свој код са ВБ кодом. Била је то црна кутија - али ни на добар начин ООП-а. Други начин да се ово каже било је да програмер није имао приступ унутрашњим ВБ „објектима“ и други начин да то каже да ВБ6 још увек није у потпуности „објектно оријентисан“.
02
од 08
ВБ 6 - Пад иза кривуље технологије
У међувремену су се почели појављивати Јава, Питхон и читав низ других програмских језика на које је објект ВЕРЕ оријентисан. Висуал Басиц се спремао - велико време! Ово је ситуација коју Мицрософт не подноси... и они су решили да проблем реше једном заувек. Решење је .НЕТ.
Али да би урадио оно што је .НЕТ морао да уради, Мицрософт је одлучио да морају да "прекину компатибилност". Односно, програми Висуал Басиц били су (са врло малим изузецима) „компатибилни са горе“ од ВБ1 па све до ВБ6. Програм написан у тој првој верзији ВБ-а и даље ће се компајлирати и покретати у следећој верзији. Али уз ВБ.НЕТ, Мицрософт је открио да једноставно не могу да учине језик потпуно ООП и одржавају компатибилност према горе.
Једном када су донели ову фундаменталну одлуку, поплавне капије су се отвориле на десет година акумулиране промене „листе жеља“ и СВЕ су прешле у нови ВБ.НЕТ. Како кажу у Британији, "за пени, за килограм".
Без додатног одгађања, ево моје врло личне листе првих пет промена са ВБ6 у ВБ.НЕТ обрнутим редоследом.
Велллллл... само још једно одлагање. Пошто се мењамо из ВБ6, где је низ декларисан као Дим миАрраи (5) има 6 елемената, имамо их шест. Уклапа се само ...
(Бубањ колут молим ...)
03
од 08
Награда (5) - Промене синтаксе у облику слова Ц
"Награда (5)", наша 6. место награда је додељена избору Ц групе: Промене синтаксе у облику Ц!
Сада можете да кодујете + = 1 уместо а = а + 1, штедећи ТРИ КОЛИКО КЉУЧА!
Светски програмери, радујте се! ВБ је подигнут на ниво Ц, а читава нова генерација која покушава да научи ВБ ће се мало приближити масовној конфузији која се суочава са студентима Ц ++.
Али чекај! Има више!
ВБ.НЕТ сада има "логику кратког споја" која је годинама увела суптилне грешке у Ц ++ код како би уштедјела драгоцене нано-секунде времена процесора. Логика кратког споја само по потреби процењује више услова у логичкој изјави. На пример:
Дим Р Ас Боолеан
Р = функција1 () и функција2 ()
У ВБ6 се обе функције процењују да ли им треба или не. Ако је ВБ.НЕТ, ако је Фунцтион1 () лажна, Фунцтион2 () се игнорише јер "Р" не може бити тачно. Али, шта ако се глобална променљива промени у Фунцтион2 () - случајно (програмери Ц ++ би рекли, „би лоше програмирање ".) Зашто мој код производи погрешан одговор у неким случајевима када је преведен ВБ.НЕТ? То би могло бити то!
За Покушатимного теже, ВБ.НЕТ ће Улов мало среће и Коначно постаните препознати по "изузетном" руковању грешкама.
ВБ6 је имао последње задржавање ГоТо: „На грешци ГоТо“. Чак морам да признам и да је Ц ++ структурирано руковање изузетком у стилу Ц ++ огромно побољшање, а не само пола побољшања.
Шта кажете, „Грешка ГоТо“ је још увек у ВБ.НЕТ-у? Велллл... Трудимо се да о томе не разговарамо превише.
04
од 08
5. место - Разне промене команде
5. место избор је групна награда: Промјене команде! Морају делити ову награду и има их скоро милион. Мицрософт штеди већ десет година и они се заиста олабављају.
ВБ.НЕТ више не подржава функције ВарПтр, ОбјПтр и СтрПтр које су преузеле меморијску адресу променљивих. И не подржава ВБ6 ЛСет који је коришћен за претварање једног корисничког типа у другог. (Да се не меша са ВБ6 ЛСет који ради нешто сасвим друго - погледајте доле.)
Такође нудимо „ад, недостаје“, „ДефБоол“, „ДефБите“, „ДефЛнг“, „ДефЦур“, „ДефСнг“, „ДефДбл“, „ДефДец“, „ДефДате“, „ДефСтр“, „ДефОбј“, „ДефВар“ и (мој лични фаворит!) ГоСуб.
Круг се претворио у ГДИ + ДравЕллипсе. Исто важи и за Лине то ДравЛине. У прорачуну сада имамо Атана уместо Атна, Сигн иде за Сгн, а Скрт одговара за велику игру уместо Скр.
У стринг обради, иако су и даље доступне ако референцирате на компатибилност са Мицрософтом именски простор, имамо ПадРигхт за ВБ6-ов ЛСет (опет, потпуно другачији од ВБ6-овог ЛСет-а, наравно) и ПадЛефт за РСет. (Ту су три притиска тастера које смо спремили са „+ =“!)
И наравно, будући да смо сада ООП, не брините ако се Сет В, Проперти Лет и Проперти Гет не испуне у ВБ.НЕТ-у, кладите се!
Коначно, Дебуг. Штампање постаје или Дебуг. Пишите или отклоните грешку. ВритеЛине. Само ђаци све штампају.
Ово чак и не дотиче све НОВЕ команде у ВБ.НЕТ-у, али ту глупост морамо негде зауставити.
05
од 08
4. место - промене процедура позива
Ин 4. место, имамо Промене у процедурама позива!
Ово је награда за "доброту, чистоћу и здраву врлину" и представља много тешких кампања од стране фракције "нема више непоштеног кода".
У ВБ6, ако је варијабла параметра поступка својствени тип, онда је то БиРеф, осим ако сте је кодирали БиВал експлицитно, али ако није кодиран БиРеф или БиВал и није својствена променљива, онда је БиВал... Схватио?
У ВБ.НЕТ-у то је БиВал, осим ако није кодиран БиРеф.
Подразумевано БиВал ВБ.НЕТ, успут, такође спречава да се промене параметара параметара у процедурама ненамјерно пребаце натраг у позивни код - кључни део доброг ООП програмирања.
Мицрософт такође "преоптерећује" ВБ.НЕТ променом захтева за заградама у позивима процедура.
У ВБ6 су заграде потребне око аргумената приликом упућивања позива функције, али не и код позивања подпрограма када се не користи изјава Цалл, већ су потребне када се користи изјава Цалл.
У ВБ.НЕТ-у су заграде увек потребне око листе празних аргумената.
06
од 08
3. место - Низи се базирају на 0 уместо на 1
Брончана награда - 3рд Плаце, иде на Низ се темељи на 0 уместо на 1!
То је само једна промена синтаксе, али ова промена добија статус „подијума медаља“, јер се гласа, „највероватније да се најебе програмска логика“. Запамтите, 3. место ИС „Награда (2)“ на нашој листи. Ако у свом ВБ6 програму имате бројила и низове (и колико их нема), овај ће вас СМЕТИТИ.
Десет година људи се питају: "Шта је Мицрософт пушио када су то радили на овај начин?" А десет година програмери имају универзално занемарио чињеницу да постоји елемент миАрраи (0) који је заузимао простор и није се навикао било шта... Осим оних програмера који га користе ДИД и њихови програми изгледају, мислим, једноставно "чудно".
За И = 1 до 5
МиАрраи (И - 1) = Шта год
Следећи
Мислим, Заиста! ...
07
од 08
2. место - Варијанта података
Сребрна медаља од 2нд Плаце иде у част старом пријатељу који је спуштен у ВБ6 програмски програм са преласком ВБ6! Ја не говорим ни о коме другом, Варијанта података.
Вероватно ниједна друга карактеристика Висуал Басиц-а „нотНет“ боље не представља филозофију „брзог, јефтиног и лабавог“. Ова слика је повезивала ВБ све до увођења ВБ.НЕТ. Доста сам стар да се сећам Мицрософтовог увођења Висуал Басиц 3.0: "Ох Вов! Ево нас! С новим, побољшаним типом Вариант података, не морате декларирати променљиве или ништа. Можете само да их замислите и кодирате их. "
Мицрософт је прилично брзо променио своју мелодију и препоручио декларирање променљивих са специфичан тип података готово одмах, због чега се многи од нас питају: „Ако не можете да користите Варијанте, зашто има их?"
Али док смо на тему типова података, треба напоменути да се много типова података изменило и додавањем Варианте у влажни цемент. Ту је нова врста података Цхар и Лонг дататип од 64 бита. Децимално је различито. Схорт и Интегер више нису исте дужине.
А ту је и нова врста података "Објекта" било шта. Чуо сам да је неко рекао, "Син Варијанте"?
08
од 08
1. место - ВБ.НЕТ је коначно у потпуности објектно оријентисан
Коначно! Златна медаља, 1. место, највећа награда коју могу да доделим ...
ТА ДАХ!
ВБ.НЕТ је коначно у потпуности објектно оријентисан!
Сада кад идете на плажу, програмери Ц ++ неће вам ударати песак у лице и украсти вам (девојка / дечко - одаберите је). И можете још увек кодирајте комплетну пробну биланцу главне књиге док покушавају да утврде које датотеке заглавља треба да укључе.
Први пут можете да кодирате што ближе чипу и приступите свим унутрашњостима система које ваше срце жели без мора да посегне за оним гадним Вин32 АПИ позивима. Добили сте наследство, преоптерећење функција, асинхроно вишеслојно брање, сакупљање смећа и све је објект. Да ли се живот може побољшати?
Чуо сам да неко каже да Ц ++ има вишеструко наслеђивање, а .НЕТ још увек не?
Спалите херетика!