Перейти к содержимому

Фотография

НАЧИНАЮЩИЙ ПРОГРАММИСТВ помощь начинающему программисту....


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 447

#221
Ty-154

Ty-154
  • Частый гость
  • 62 сообщений
Что бы вы сейчас не сказали, какую хрень только не включал бы Borland в свои поставки... все это, дельфи,по прежнему относится к уровням "обучение" и "баловство"...
  • 0

#222
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
2 Ty-154

Вы явно не въехали в суть, я говорю если и нужно учить другой язык но только потому, что Дельфи вымирает, а не по тем глупым причинам которые вы перечислили. Кнопкадавов в Дельфи больше потому, что самих "разработчиков" дельфи больше, нет наверное студента у кого в резюме не написано знание дельфи. И еще Button1_click - это процедура а не функция, не трогайте того чего не знаете.
  • 0

#223
xxel

xxel
  • Завсегдатай
  • 146 сообщений


Кстати, Managed C++ почему-то такой проблемы с байтами не испытывает, и результат на удивление байт. Так что все-таки косяг компилятора, из разряда как в GetWindowsVersion в Win16

Ну вот, и вы тоже в пример ставите компилятор для совсем другого языка! Если бы вы назвали компилятор именно для C#, который такого "косяка" не имеет... Но даже и в таком случае я уверен, что у компилятора MS это не косяк. Это сознательное решение разработчиков компилятора C# от Microsoft.

Естесственно в пример ставятся компиляторы любых других языков, которые подобных косяков не имеют. dzid в целом прав C# "Broken As Designed, Bad Thing и все такое." Сляпали версию (кстати в спецификации версии 1.0 нет прямого упоминания о столь оригинальном поведении компилятора), а когда поняли что получилось, начали заминать историю в стиле "перекуем баги на фичи". Внятного объяснения такого поведения компилятора C# у MS нету (и быть не может), только типа "так надо, потому как так работает". Проблема только в том, что у во всех остальных языках (даже в VB.Net) это работает по другому и мифическая "расплата за поддержку межъязыковой совместимости" для них почему то не существует. Но надо отдать должное PR от MS - люди верят что такое поведения компилятора C# (которое выделяет его от всех) вполне разумно.
  • 0

#224
xxel

xxel
  • Завсегдатай
  • 146 сообщений



PS Повторюсь... очень не рекомендую начинать с дельфи,

Учитавая что в основе дельфей лежит паскаль, который был разработан именно,
как язык обучения программированию, то рекомендация более чем уместная. :D

:fie: а тут кто-то разговаривал о паскале? :D я что-то проспал? :-/
мы кажется о дельфи :D

И какой же язык используется в дельфи?
До того как его в 7-й версии всетаки переименовали в дельфи?
  • 0

#225
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

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

Нет, это не естественно - ставить в пример компиляторы других языков. Естественно будет, если вы приведете пример компилятора C#, только не от MS, а от других разработчиков. Которым удалось избежать этот "косяк" с типом byte.
  • 0

#226
@сенька

@сенька
  • Завсегдатай
  • 106 сообщений
Мдяяяя.... мне сначала понять надо, что за зверь такой ПРОГРАММИРОВАНИЕ))))) времени у меня предостаточно...на делфи никто останавливаться не собирается :spy:
можно будет потом и сравнивать, какой язык лучше... все ваши рекомендации беру себе на заметку!
через пару лет, будучи профессионалом (надеюсь)))),,,, перечитаю всю тему, и скажу- хто прав, а хто нет ))) :D а по сути дела, правых и неправых тут нет, каждый по- своему понимает тот или иной язык, для кого-то сложно и не понятно одно,, для кого-то совсем другое.
  • 0

#227
Ty-154

Ty-154
  • Частый гость
  • 62 сообщений

2 Ty-154
И еще Button1_click - это процедура а не функция

Согласен!

не трогайте того чего не знаете.

прекрасно знаю! только в этом контексте это не важно...
может до орфографии моей прикопаетесь?.. или пунктуации?..





PS Повторюсь... очень не рекомендую начинать с дельфи,

Учитавая что в основе дельфей лежит паскаль, который был разработан именно,
как язык обучения программированию, то рекомендация более чем уместная. :spy:

:D а тут кто-то разговаривал о паскале? :) я что-то проспал? :)
мы кажется о дельфи :)

И какой же язык используется в дельфи?
До того как его в 7-й версии всетаки переименовали в дельфи?

в основе лежит object pascal, переименованный в дельфи... и что?
но я так и не понял... кто-то тут говорил про паскаль?
ничего не имею против него, как языка для обучения...

я про дельфи (IDE)... я про то, что большинство кодирующих в ней - быдлокодеры, которые плохо представляют, что такое ООП. У которых основное "звено" их "произведений" это Button*_click.
Кто-нибудь будет это отрицать?
  • 0

#228
dzid

dzid
  • Свой человек
  • 939 сообщений


Что-то мне говорит, что на заре становления C# забыли определить byte operator + (byte, byte)...

Так что же это вам говорит, не могли бы вы точнее сказать, а не "что-то"?

А мне это говорит о другом. Не может такого быть, чтобы для одного из самых простейших, фундаментальных значимых типов, встроенных в систему, забыли определить элементарную операцию сложения! И с 2001 года за много лет так и не исправили.

Я вам скажу, что у МС много чего перепутано и до сих пор не исправлено, та же старшая и младшая версия Windows в DWORD'е.

Это сознательное решение разработчиков компилятора C# от Microsoft.

На самом деле byte в реальных приложениях, написанных вменяемыми людьми, практически не используется. Даже у нас, в 40MB исходников, явно char встречается всего пару раз, и то в составе структур, описывающих форматы чужих файлов. Так что немудрено, что проглядели, а потом оказалось проще изменить документацию, чем программный код. Мы так тоже иногда делаем :spy:
  • 0

#229
dzid

dzid
  • Свой человек
  • 939 сообщений


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

Нет, это не естественно - ставить в пример компиляторы других языков. Естественно будет, если вы приведете пример компилятора C#, только не от MS, а от других разработчиков. Которым удалось избежать этот "косяк" с типом byte.

Другие реализации C# обязаны поддерживать баги MS, иначе это будет не C#, также как Intel C++ обязан иметь ржим совместимости с компилятором от MS (который в ранних версиях отличался весьма своеобразным толкованием C++)
  • 0

#230
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Мдяяяя.... мне сначала понять надо, что за зверь такой ПРОГРАММИРОВАНИЕ

Для понимания полезно посмотреть, например, здесь.
  • 0

#231
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Я вам скажу, что у МС много чего перепутано и до сих пор не исправлено, та же старшая и младшая версия Windows в DWORD'е.

За "много" или "мало" не скажу, хотя конечно, при такой грандиозной работе ошибки неизбежны. Но с byte, все же думаю, они так поступили не по ошибке, а сознательно. Я посмотрел на эту тему уже не только у Рихтера, но и у других солидных авторов, которые точно независимы от Microsoft. Никто не называет это ошибкой.

На самом деле byte в реальных приложениях, написанных вменяемыми людьми, практически не используется. Даже у нас, в 40MB исходников, явно char встречается всего пару раз, и то в составе структур, описывающих форматы чужих файлов. Так что немудрено, что проглядели, а потом оказалось проще изменить документацию, чем программный код. Мы так тоже иногда делаем :spy:

Так уж и не используется? Если не отдельные переменные типа byte, тогда массивы byte[]. В составе пользовательских типов (ссылочных и значимых) тоже может быть, конечно.

А насчет char, это отдельный разговор. В языке C# тип char - 2-байтовый (для хранения кода Unicode). Мало того, это не простое число, а экземпляр структуры, а еще у этого типа есть множество статических методов. Поэтому я и говорю, что неуместно приводить в пример компиляторы других языков. У них элементарные типы совсем другие, одинаковость названий типов - источник ошибок и заблуждений.
  • 0

#232
dzid

dzid
  • Свой человек
  • 939 сообщений

Так уж и не используется? Если не отдельные переменные типа byte, тогда массивы byte[]. В составе пользовательских типов (ссылочных и значимых) тоже может быть, конечно.

Уж операциями над байтами точно не производятся. А всякие параметры и структуры - ну это уж как мчудаки из 3rd party понавыдумывали.

В общем, разумного объяснения этому багу фиче не существует, ибо подобных проблем не существует ни в одном другом (известном мне) языке программирования (корме паскаля, где операция деления расширяет сознание тип результата. И то она там какая-то особенная Или там функция? не помню :spy:.
  • 0

#233
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

В общем, разумного объяснения этому багу фиче не существует, ибо подобных проблем не существует ни в одном другом (известном мне) языке программирования (корме паскаля, где операция деления расширяет сознание тип результата. И то она там какая-то особенная Или там функция? не помню :rotate:.

Да и в C# никаких проблем с byte не существует. Никто так и не привел реального примера, чтобы в программе на C# возникла реальная проблема из-за byte.
  • 0

#234
xxel

xxel
  • Завсегдатай
  • 146 сообщений

...грандиозной работе... ошибки неизбежны... все же думаю... поступили ... сознательно. ... не только у Рихтера... и у других солидных авторов... точно независимы от Microsoft.....

Скоко пафоса то. Давно-давно множество авторитетных и солидных авторов в таком же духе всем рассказывали, что Земля плоская.

Поэтому я и говорю, что неуместно приводить в пример компиляторы других языков. У них элементарные типы совсем другие, одинаковость названий типов - источник ошибок и заблуждений.

Я уже показывал пример Byte в VB.Net и byte в C#.
Оба типа отображаются напрямую в System.Byte и яляются просто синонимами этого типа (см MSDN). Код
Dim b As Byte
Dim y As Byte
b = 100
y = b + b
byte b = 100;
byte y;
y = (byte)(b + b);
пораждает совершенно одинаковый промежуточный код с точностью до байта.
Какие еще другие элементарные типы? В среде исполнения .Net все типы для
всех языков едины и унифицированы.

А насчет char, это отдельный разговор. В языке C# тип char - 2-байтовый (для хранения кода Unicode). Мало того, это не простое число, а экземпляр структуры, а еще у этого типа есть множество статических методов.

Складывается ощущение, что вы о типах в .Net ничего не знаете кроме как с позиции Рихтера C#. Тип char ничем от других примитивных типов в .Net не отличается. Мало того даже byte это "не простое число, а экземпляр структуры, а еще у этого типа есть множество статических методов"
http://msdn.microsof...ystem.char.aspx
http://msdn.microsof...ystem.byte.aspx
Все примитивных типы в .Net это структуры и у всех есть статические методы и интерфейсы.

Да и в C# никаких проблем с byte не существует. Никто так и не привел реального примера, чтобы в программе на C# возникла реальная проблема из-за byte.

Очередная порция воображения? Никто не говорит, что в программе возникает проблема из-за byte, т.к. за работу с byte отвечает .Net Framework. Речь идет за то, что в C# неочевидная система типизация в отличающаяся от всего нормального мира, возникщая как баг, продаваемая как фича (история по типу Виагры).
  • 0

#235
xxel

xxel
  • Завсегдатай
  • 146 сообщений

Мдяяяя.... мне сначала понять надо, что за зверь такой ПРОГРАММИРОВАНИЕ)))))

Это такой вид исскуства. Одни рисуют кистью на холсте. Другие лепят из глины, Третьи режут мрамор. Четвертые типографским спсобом массово тиражируют открытки с фотографиями из эрмитажа. В общем кто что хочет чтото и делает. У котого получается классика, у когото ширпотреб, а у когото авангардный нью-арт. Ну и все в том же духе
  • 0

#236
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений


...грандиозной работе... ошибки неизбежны... все же думаю... поступили ... сознательно. ... не только у Рихтера... и у других солидных авторов... точно независимы от Microsoft.....

Скоко пафоса то.

Зачем вам потребовалось выдирать мои слова по отдельности из контекста и расставлять почти за каждым моим словом многозначительные многоточия. Которых у меня и в помине не было. Видимо, это потребовалось вам для искажения смысла моих высказываний при цитировании (чтобы выглядело более пафосно, чем на самом деле).

Давно-давно множество авторитетных и солидных авторов в таком же духе всем рассказывали, что Земля плоская.

Ненужная демагогия и болтовня. Но ладно, идем далее:

Я уже показывал пример Byte в VB.Net и byte в C#.
Оба типа отображаются напрямую в System.Byte и яляются просто синонимами этого типа (см MSDN). Код

Dim b As Byte
Dim y As Byte
b = 100
y = b + b
byte b = 100;
byte y;
y = (byte)(b + b);
пораждает совершенно одинаковый промежуточный код с точностью до байта.

Пример у вас какой-то слишком скромный. :lol: Мало пользы в нем. Попробуйте немного смелее:
'VB .NET
Dim a  As Byte
Dim b As Byte
Dim c As Byte
a = 255
b = 1
'Приведение типов для результата сложения не требуется. Хорошо-то как! :)
c = a + b 'Опаньки! Возникло исключение OverflowException! 
'Увы, дальнешая работа программы невозможна. :(

//C#
byte a = 255;
byte b = 1;
byte c;
// Требуется явное приведение результата сложения к byte
с = (byte)(a+b); //Исключения нет. Получено именно то, что хотел программист (с == 0, ведь программист явно сказал: нужен Byte)
//Работа программы успешно продолжается.
Это сравнение реализации обработки сложения byte в VB и C# еще раз показывает:

1. В C# реализация сложения для типа byte - не баг, а сознательное решение.
2. C# не очень-то подходит для начинающих. (Хотя сделать такое же поведение, как в VB .NET, программисту C# совсем не трудно).

Какие еще другие элементарные типы? В среде исполнения .Net все типы для всех языков едины и унифицированы.

Я говорил то же самое насчет среды исполнения. Но только, чтобы привести тип языка, поддерживающего .NET, к типу среды исполнения, иногда приходится заплатить маленькую плату. И пример сложения байтов в VB .NET это обстоятельство тоже хорошо иллюстрирует. Не хотите в VB .NET делать явное приведение к byte? ОК, можно и так. Но тогда занимайтесь камасутрой с исключениями.

Складывается ощущение, что вы о типах в .Net ничего не знаете кроме как с позиции Рихтера C#. Тип char ничем от других примитивных типов в .Net не отличается. Мало того даже byte это "не простое число, а экземпляр структуры, а еще у этого типа есть множество статических методов"
[(ссылки на MSDN Library)]
Все примитивных типы в .Net это структуры и у всех есть статические методы и интерфейсы.

Я это знаю, и нигде не оспаривал, насчет "всех примитивных типов в .NET". У них всех есть статические методы и интерфейсы. Я не говорил, что только байт так реализован. Ищете, к чему бы еще у меня прицепиться?

Очередная порция воображения? Никто не говорит, что в программе возникает проблема из-за byte, т.к. за работу с byte отвечает .Net Framework. Речь идет за то, что в C# неочевидная система типизация в отличающаяся от всего нормального мира, возникщая как баг, продаваемая как фича (история по типу Виагры).

Так и не убедили. Не "возникшая как баг, продаваемая как фича" ни разу, а принятая как сознательное решение. Баги, особенно такие простые, в Microsoft править умеют хорошо и быстро. А вы можете продолжать радовать других читателей (только, пожалуйста, не меня) очередными порциями вашего богатого воображения. :dandy:

Сообщение отредактировал Visual1: 13.11.2009, 19:46:55

  • 0

#237
@сенька

@сенька
  • Завсегдатай
  • 106 сообщений
Спасибо за ссылки и пояснения.

а темку надо переименовать, скажем.....
ПОЕДИНКИ ВЫСШИХ РАЗУМОВ !!!)))) прикольно!
к таким диалогам, надеюсь, не профессия обязывает?))) :-)
  • 0

#238
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Спасибо за ссылки и пояснения.

Вы ко мне обращаетесь? Обычно в форумном общении, если нет чьей-то цитаты, или явного обращения к участнику, это значит, обращаются к предыдущему оратору. Значит, вы обращаетесь ко мне.

Да, ссылку на полезную информацию для понимания, что такое программирование, дал вам я. Поэтому ваше "спасибо" за эту ссылку явно адресовано мне. :-)

Надеюсь, там все изложено достаточно объективно и понятно, и вам это действительно было полезно.

А "пояснения" (точнее, свои субъективно личные соображения) дал вам г-н xxel. Согласно его "пояснению", программирование - это

Это такой вид исскуства. Одни рисуют кистью на холсте. Другие лепят из глины, Третьи режут мрамор. Четвертые типографским спсобом массово тиражируют открытки с фотографиями из эрмитажа. В общем кто что хочет чтото и делает. У котого получается классика, у когото ширпотреб, а у когото авангардный нью-арт. Ну и все в том же духе

Мне представляется, пользы от такого "пояснения" мало. Оно подходит разве что для детского сада, младших школьников, ну и для некоторых взрослых, у кого ограниченные умственные способности.

а темку надо переименовать, скажем.....
ПОЕДИНКИ ВЫСШИХ РАЗУМОВ !!!)))) прикольно!

Не надо ничего переименовывать. "Высших разумов" здесь нет (зачем им тратить свое драгоценное время). А для начинающих, надеюсь, есть возможность узнать что-то полезное. Желаю успехов.

P.S. Кстати, не советую злоупотреблять заглавными буквами. Посмотрите правила форума, так делать настоятельно не рекомендуется. За это могут быть наказания от администрации.
  • 0

#239
@сенька

@сенька
  • Завсегдатай
  • 106 сообщений

Вы ко мне обращаетесь?

Ну конечно к Вам! здесь только Вы мне полезные советы даете.. а остальные так,,,,- мимо пробегают с советами своими))))
ну вот... нагрубила ;) сорри, не хотела!

Мне представляется, пользы от такого "пояснения" мало. Оно подходит разве что для детского сада, младших школьников, ну и для некоторых взрослых, у кого ограниченные умственные способности.

А кто сказал, что начинающий программист не может быть таковым? на то он и начинающий,,, любой дэбил может захотеть освоить языки, ваша цель, помочь ему в этом (раз уж вы в теме) а получится у него или нет...


а темку надо переименовать, скажем.....
ПОЕДИНКИ ВЫСШИХ РАЗУМОВ !!!)))) прикольно!

Не надо ничего переименовывать. "Высших разумов" здесь нет (зачем им тратить свое драгоценное время). А для начинающих, надеюсь, есть возможность узнать что-то полезное. Желаю успехов.

Вы себя недооцениваете!
Насчет заглавных - понял, больше не буду. :-)
  • 0

#240
@сенька

@сенька
  • Завсегдатай
  • 106 сообщений

Я вам советую начать с паскаля. Когда начальное понимание придет (месяца черз 3 не раньше, при условии постоянного решения практических задач) можно уже дельфи ставить. Для изучить/поиграться 7-ки достаточно. Сразу RAD среде без базового бакграунда неполезно.

Спасибо за совет!!!! Turbo Pascal расставил все по местам... ну просто настоящий учитель, как Вы говорите "начальное понимание "- оно уже потихонечку ко мне приходит :-) на данный момент изучаю типы переменных и их значения (преобразователи). а Delphi подождет))) :)
  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.