С вам в целом согласен. Был. Начиная с 7 пошла фантастика — на врача, ученого или инженера (не вашего — ИТшного, а который самолеты строит) у вас тоже станет: «это мне нужно — учу, а остальное не учу»? Гибкость в обучении в вузах в США и так есть. Но есть же образовательные программы с обязательными курсы.
Университет это в первую очередь — исследовательская база.
Это — главная проблема нашего образования. Если у нас так и останется разделение науки на «вузовскую» и «академическую» и заниматься ею будут во всяких закрытых КБ или НИИ — ничего не изменится.
Я знаю инженеров, учёных, но кто есть в вашем понимании IT шник? Проектирование навигационных приборов в НАСА — это IT? Визуализаци экспериментов в биологии — это IT? Web программирование — это IT?
Например в западных вузах, обычно есть целых три направления, имеющих к этому отношение School of Natural Science, School of Computer Science, School of Computer Engineering. У нас же этому учат на математических факультетах. Не всё IT есть обслуживающий персонал. Есть вероятность, что многие из вас перепутали желаемое с ожидаемым — в Университете готовят в первую очередь ученых, а не фрилансеров.
Smalltalk разрабатывается и используется многими компаниями уже 40 лет. У него прекрасное сообщество, проводятся регулярные международные конференции. Байткод и принципы этого языка весьма отличаются от Java, мне кажется, что использование jvm — не лучшее решение. Есть лишнее время или финансы? Welcome to Cog VM — виртуальная машина с jit компиляцией разрабатывается всего одним человеком — Eliot Miranda
VisualWork от Cincom в несколько раз быстрее, чем jvm.
Что касается порога, этот язык самый легкий из всех.
сообщение – это всего лишь строка с информацией о том что и кому отправить, и её можно переслать по сети.
Если вы пишете:
id i = [obj do: something];
1) шлётся сообщение (вызов функции obj_msgSend с получателем, селектором – строкой с именем сообщения, – и остальными аргументами);
2) в dispatch table иерархии классов ищется функция, соответствующая этому селектору, i. e. «method», если её нет, вызывается — forwardingTargetForSelector: или — forwardInvocation:, чтобы переслать сообщение, или если их не реализовали — doesNotRecognizeSelector: с исключением.
3) вызывается функция, с реализацией (у этого или, в случае пересылки, иного класса)
4) obj_msgSend возвращает значение
Именно этим способом работают прокси – они отвечают на сообщения, но не реализуют своих методов.
неужели никто не смотрел?
When it encounters a method invocation, the compiler might generate a call to any of several functions to perform the actual message dispatch, depending on the receiver, the return value, and the arguments. You can use these functions to dynamically invoke methods from your own plain C code, or to use argument forms not permitted by NSObject’s perform… methods. These functions are declared in /usr/include/objc/objc-runtime.h.
objc_msgSend sends a message with a simple return value to an instance of a class.
objc_msgSend_stret sends a message with a data-structure return value to an instance of a class.
objc_msgSendSuper sends a message with a simple return value to the superclass of an instance of a class.
objc_msgSendSuper_stret sends a message with a data-structure return value to the superclass of an instance of a class.
Это — главная проблема нашего образования. Если у нас так и останется разделение науки на «вузовскую» и «академическую» и заниматься ею будут во всяких закрытых КБ или НИИ — ничего не изменится.
Я знаю инженеров, учёных, но кто есть в вашем понимании IT шник? Проектирование навигационных приборов в НАСА — это IT? Визуализаци экспериментов в биологии — это IT? Web программирование — это IT?
Например в западных вузах, обычно есть целых три направления, имеющих к этому отношение School of Natural Science, School of Computer Science, School of Computer Engineering. У нас же этому учат на математических факультетах. Не всё IT есть обслуживающий персонал. Есть вероятность, что многие из вас перепутали желаемое с ожидаемым — в Университете готовят в первую очередь ученых, а не фрилансеров.
VisualWork от Cincom в несколько раз быстрее, чем jvm.
Что касается порога, этот язык самый легкий из всех.
Если вы пишете:
id i = [obj do: something];
1) шлётся сообщение (вызов функции obj_msgSend с получателем, селектором – строкой с именем сообщения, – и остальными аргументами);
2) в dispatch table иерархии классов ищется функция, соответствующая этому селектору, i. e. «method», если её нет, вызывается — forwardingTargetForSelector: или — forwardInvocation:, чтобы переслать сообщение, или если их не реализовали — doesNotRecognizeSelector: с исключением.
3) вызывается функция, с реализацией (у этого или, в случае пересылки, иного класса)
4) obj_msgSend возвращает значение
Именно этим способом работают прокси – они отвечают на сообщения, но не реализуют своих методов.
неужели никто не смотрел?
When it encounters a method invocation, the compiler might generate a call to any of several functions to perform the actual message dispatch, depending on the receiver, the return value, and the arguments. You can use these functions to dynamically invoke methods from your own plain C code, or to use argument forms not permitted by NSObject’s perform… methods. These functions are declared in /usr/include/objc/objc-runtime.h.
objc_msgSend sends a message with a simple return value to an instance of a class.
objc_msgSend_stret sends a message with a data-structure return value to an instance of a class.
objc_msgSendSuper sends a message with a simple return value to the superclass of an instance of a class.
objc_msgSendSuper_stret sends a message with a data-structure return value to the superclass of an instance of a class.