Нещо като тест на Тюринг :)

11 отговора 660 прегледа
#1

Нещо като тест на Тюринг :)

Днес един приятел ми прати следния VB код:

Me.ListModules = New System.Windows.Forms.ListView()
Me.Modules = New System.Windows.Forms.ColumnHeader()
Me.btnSave = New System.Windows.Forms.Button()
Me.btnExit = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'ListModules
'
Me.ListModules.CheckBoxes = True
Me.ListModules.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.Modules})
Me.ListModules.Location = New System.Drawing.Point(16, 16)
Me.ListModules.Name = "ListModules"
Me.ListModules.Size = New System.Drawing.Size(200, 400)
Me.ListModules.TabIndex = 0
'
'Modules
'
Me.Modules.Text = "Модули"
Me.Modules.Width = 170
'
'btnSave
'
Me.btnSave.Location = New System.Drawing.Point(232, 16)
Me.btnSave.Name = "btnSave"
Me.btnSave.Size = New System.Drawing.Size(64, 32)
Me.btnSave.TabIndex = 1
Me.btnSave.Text = "Запис"
'
'btnExit
'
Me.btnExit.Location = New System.Drawing.Point(232, 64)
Me.btnExit.Name = "btnExit"
Me.btnExit.Size = New System.Drawing.Size(64, 32)
Me.btnExit.TabIndex = 2
Me.btnExit.Text = "Изход"
'
'Form_frmAddNew
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.BackColor = System.Drawing.Color.Teal
Me.ClientSize = New System.Drawing.Size(306, 426)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.btnExit, Me.btnSave, Me.ListModules})
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
Me.Name = "Form_frmAddNew"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = "Добавяне на модули"
Me.ResumeLayout(False)

В първия момент почнах да го критикувам - що пише Me навсякъде, що не ползва with и т.н. Какво беше учудването ми, когато се оказа, че кода е генериран автоматично. Не знам защо като го видях за пръв път ми заприлича на човешко творение.

Я вышел им наперерез!
Отговор
в отговор на Resurrector #2

I da, i ne :-)

Temata btw naistina e vesela - testa na Turing obache ne e adekvaten zastoto sme programisti - po-blizo da machinite otkolkoto do horata.

UB40 !
Отговор
в отговор на Resurrector #3

Re: Нещо като тест на Тюринг :)

E to ne prechi na generatora da wadi kod sus With, wmesto sus Me - dori bi moglo da oprosti w njakoi sutiatzii neshtata (no ako trjabwa da se smeswat dva kontexta - mozhe i da stane po-slozhno).

Ot druga strana - az wse po-malko i po-malko sum ubeden che GUI-to trjabwa da se opiswa koda - predi bjah goljam fen na ideata... posledno vreme smjatam che wsichki podobni opisania trjabwa da sa navun - kato danni ili resursi.

Отговор
в отговор на malkia #4

Re: Нещо като тест на Тюринг :)

Народа явно се лашка насам-натам. В предишните VB GUI-то беше описано извън кода.

Я вышел им наперерез!
Отговор
в отговор на Resurrector #5

Re: Нещо като тест на Тюринг :)

UI-то вярно че си е черна работа, ама смятам че няма лошо да прилича на програмиране. Най-малкото е по-гъвкаво. Доста по естествено е да работиш с код, отколкото с ресурси, като се налагат разни runtime манипулации.

peace, love, unity
Отговор
в отговор на Vroomfundel #6

Re: Нещо като тест на Тюринг :)

Mda taka e - ako se nalagat runtime modifikatzia... No ako se nalaga translatzia? i ne stigat poletata....

Отговор
в отговор на Resurrector #7

Re: Нещо като тест на Тюринг :)

Ауто генериран код от Visual Studio.NET, по-точно от УинФорм дизайнера. Какво те притеснява ? Дърпаш с мишката контроли наляво-надясно и Студиото се оправя нататъка. Дразни те, че е в кода и не е отделен? Слагаш си го във #region директива и го затваряш в студиото да не ти пречи.

With клаузата се поддържа от синтаксиса на ВБ.НЕТ, но заради backward-compatibility, пичовете от .НЕТ фреймуърк тийма си имат съображения да не я ползват, има статия във МСДН защо според тях With не е добра практика.

Е да, верно, подреден и разбираем е кода.. и ясен... няма 50 пойнтера към структура от пойнтери и 5 вложени фора които алокират/деалокират памет... и сигурно не се компилира със gcc... така, че "истинските" програмисти направо могат да плюят отгоре на тоя код. А пък нали е Бейсик... кой велик програмист пише Бейсик.

Отговор
в отговор на Гypy #8

Шшшт !

Тоя код си е в Регион :-)))
Само че за останалото си прав - НЕ прилича особено на любимите някому С++ бози :-))) Що да е просто като може да е сложно ?

UB40 !
Отговор
в отговор на jamie #9

Re: Шшшт !

В C++ няма with, бе. Пък на бейсик съм писал бая повече от тебе.

Я вышел им наперерез!
Отговор
в отговор на Гypy #10

Re: Нещо като тест на Тюринг :)

Нищо не ме дразни бе, човек. Просто или остарявам, или оглупявам, най-вероятно и двете. Взех машнно генериран код за човешки.

Я вышел им наперерез!
Отговор
в отговор на Resurrector #11

Re: Нещо като тест на Тюринг :)

Е па умничко е новото Вижуал Студио, действително кода дето го генерира е доста по-добър от този на повечето "програмисти"... има и други интересни неща.

Примерно с мишката навигираш по Sql Server-а, дабъл кликваш на произволна сторната процедура и ти генерира целия скучен код за извикването и взимането на резултата барабар със всичките параметри.

Е.. ама друго си е да го напишеш на С това, да имаш контрол на ниско ниво, както някои хора се изразяват.

Отговор
в отговор на Resurrector #12

Бе

писал си ти :-)))
Толкоз и на С си писал, я се концентрирай сега върху АТМЕЛ-а че няма време :-)))

UB40 !
Отговор