Какой язык программирования наиболее перспективный?

  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #61

Кстати существует порт Quake2 на managed code.

А насчет ОС на шарпе - погугли, энтузиасты уже пишут. У них времени много наверное. У меня просто нет столько свободного времени.
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #62
в конечный исполняемый файл все равно записывают лишнюю информацию...
это проблема языка или его интерпретации компилятором?
всё от лени. напишите свою библиотеку или даже компиляторчик
и будет вам щастье.

интересно, кто-нить вменяемый вообще может привести задачу для ассемблера,
которая не закроется с разработкой специальных библиотек?

*не то что ОС, а в аппаратный уровень давно пора вмонтировать что-то вроде CLR.
будет тогда и быстро и переносимо.

по теме: наиболее перспективный язык в данный момент находится в стадии зачатия, по определению.
 
Останнє редагування:
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #63
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #64
Просто потому, что визуальное восприятие любой информации у человека более развито, чем восприятие вербальной. Скоро выйдет моя статья по этому поводу - там гораздо более техническим языком написаны все соображения по этому вопросу (если вы каким-то образом имеете контакты в ХПИ с преподавателями факультета КИТ - попробуйте выйти на Далеку Валентину Дмитриевну - у нее есть информация, в каком именно журнале будет напечатана статья (авторы - Далека В. Д., Творковский Д. Ф.), я пока ничего в инете не нашла). В понедельник смогу выложить ее в этой теме. Да, и еще - выложу пре-релиз самой среды разработки с компилятором. Реально облегчит жизнь, если надо разрабатывать программу с множеством переходов - ее проще представить в виде автоматной схемы этой программы.

PS: to Don Corleone - приношу свои извинения, мне показалось, что вы в первой цитате приводите доводы исключительно в пользу самых низкоуровневых языков, а во второй - в пользу более абстрактных. Произошла "очитка" (что также подтверждает вышесказанное про трудности восприятия вербальных представлений)
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #65
 
Останнє редагування:
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #66

вот именно что часть... хоть это уже и ядро NT, а не как 9х - оболчки Доса, все же, масм использовался для написания ядра...

p.s: а где ты их достала? взломала майкрософт? или майкрософт подлался в Open Source ?


согласен.. но все же считаю что для работы с железом нужен асм..да и вообще, если бы разрабатывалсиь все программы на асме, тогда бы вычеслительная мощность того уровня что сейчас - не понадобилась бы вообще!!!
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #67

Сорсы вин2к в начале 2000-х можно была скачать спокойно, они как-то просочились в сеть. Ну там не все конечно, shell в основном, уже не помню.


Пионерское мнение. Если бы да кабы. Только разрабатывались эти программы в 10 раз больше по времени и имели бы куда больше багов.
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #68
Ага. Хватило бы машины Поста.
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #69
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #70
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #71
Если я напишу 9.99999 - вопросы будут?
Нет. Думаю, что речь идёт о десятичной позиционной системе.
Если бы разговор шёл среди простых обывателей, я бы сразу понял, что в "десять" раз. А так, спорят программисты (как я предполагаю). Может быть числа записывают исключительно в ноликах и единичках. Или в шестнадцатеричной системе.
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #72
Если бы записывали в двоичной системе - писали бы так 0b10 (или 10b).
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #73
Если бы записывали в двоичной системе - писали бы так 0b10 (или 10b).
И как бы я понял, что b-признак бинарной системы, а не "цифра одиннадцать" в шестнадцатеричной системе?

P.S.
Не относитесь серьёзно. Я пошутил. Больно уж спор заумный идёт.
P.P.S.
Не пишите, что в шестнадцатеричной системе использовали бы что-то типа: 10h, 0x10, $10, 10(16)
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #74
Не пишем.
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #75
Скажите лучше, стОит ли изучать С/С++ (с тем, чтобы через пару лет чем-то серьезным заняться), или это уже бесперспективно?

Только не говорите, что я свалил С и С++ в одну кучу Просто хочу сейчас почитать книжку по С (синтаксис и всякие заморочки), а потом - по С++, ну а там уже надо будет серьезно учить ООП(в обоих смыслах аббревиатуры), паттерны и т.д...
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #76
Если вы хотите получить от работы деньги - изучайте такие стандарты, которые позволют разрабатывать крупные проекты (и в команде разработчиков). Если вы хотите получить удовольствие от своего творчества и "ковырять" мир логики - учите то, что не имеет особо крупных надстроек вида pattern, STL и иже с ними.
PS: Ориентируйтесь на первое, но для того, чтобы знать первое - вам придется осмыслить второе.
Резюме: Конечно, стоит изучать, потому, что фундамент есть у всего и незнание принципа фундамента не даст вам никакой возможности построить "стены", а тем более - "крышу".
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #77
Спасибо за ответ. Конечно, хочется зарабатывать деньги (хоть какие-нибудь). Интересовала именно перспектива С++.
А то сейчас сел крестики-нолики на С++ писать, набросал UML-диаграмму... А там от ООП - одно название. Каких-то классов напридумывал, а что с ними делать - непонятно Так и тянет все члены-данные в public написать. Буду учиться...

И это при том, что генеральный директор Харьковского офиса Aldec целый семестр меня, болвана, ООП учил. Аж стыдно
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #78
Говоря кратко, можно абстрагироваться так: Представьте себе структуру (ну, например такую (буду использовать особенности синтаксиса VC6)):
Код:
#typedef struct tagKE_OBJECT:
{
    DWORD KeObjectType;           //Тип объекта ядра (семафор, мьютекс, процесс....)
    DWORD KeObjectNumber;        //Номер (ID) объекта
    DWORD KeObjectState;          //Состояние объекта (захвачен, свободен, ждет....)
    WORD KeObjectPriority;          //Приоритет (для объектов типа "процесс")
    tagKE_OBJECT KeObjNext;      //Указатель на следующий объект в списке
    tagKE_OBJECT KeObjPrv;        //-"- на предыдущий объект
    tagKE_OBJECT KeFirstChild;    //-"- на первого потомка (список дочерних объектов)
    void* KeObjectBody;              //Указатель на тело объекта
    DWORD KeObjBodyLenght;      //Длина тела объекта (пусть будет в байтах)
}KE_OBJECT, FAR* lpKE_OBJECT, NEAR* pKE_OBJECT;
Теперь представим себе, что у нас есть некоторые функции, оформленные в виде процедур, которые работают со структурами данного типа:
Код:
DWORD CreateKeObject(lpKE_OBJECT lpKeRoot,DWORD KeChild,WORD KeObjPriority,DWORD KeObjBodyLenght,void* KeObjBodyStart)
//Этим я создаю новый объект в списке.
//lpKeRoot - указатель на начало дерева-списка объектов,
//KeChild - чей потомок будет (то есть, ID родителя),
//KeObjPriority - приоритет объекта при создании,
//KeObjBodyLenght - длина тела объекта,
//KeObjBodyStart - указатель на тело объекта.
{
    DWORD CntrObjects=0;
    lpKE_OBJECT tmpKeObjStruct=lpKeRoot;
    while(CntrObjects<_MAX_KE_OBJECTS||tmpKeObjStruct->KeObjNext||tmpKeObjStruct->KeObjectNumber!=KeChild)
        {
         CntrObjects++;                               //Будущий ID нового объекта++
         tmpKeObjStruct=tmpKeObjStruct->KeObjNext;   //Ищу последний в списке
        }
//Нашла последний:
    if(tmpKeObjStruct->KeFirstChild) return ERROR_CHILD_EXIST;
//(на самом деле, в моей оси допускается сколь угодно ветвистое дерево-список объектов, но проверка конца по координате X займет уйму текса. Я же хочу просто объяснить на максимально живом примере отличия ООП от процедурного языка)
    tmpKeObjStruct->KeFirstChild=new(KE_OBJECT);
    tmpKeObjectStruct=tmpKeObjStruct->KeFirstChild;  //Перешла на дочерний;
    tmpKeObjStruct->KeObjectNumber=CntrObjects;  //Присвоила ID
    tmpKeObjStruct->KeObjPriority=KeObjPriority;
    tmpKeObjStruct->KeObjBodyLenght=KeObjBodyLenght;
    tmpKeObjStruct->KeObjBody=(char*)malloc(KeObjBodyLenght);
    KeObjBodyStart=tmpKeObjStruct->KeObjBody;
    return (DWORD)tmpKeObjStruct;     и вернула указатель на созданный объект.
}
Займемся "разбором полетов". Я здесь умышленно допустила несколько "скользких" моментов. Ну, например - указатель на первый элемент списка объектов передается в виде lpKE_OBJECT lpKeRoot, что в принципе очень опасно, поскольку не дай бог эта функция вздумает в него полезть - то навсегда потеряется указатель на корневой элемент дерева.

В общем вы видите, что программа в итоге состоит из двух компонентов - структур данных (отнесу сюда и простые переменные) и функций (процедур), которые выполняют некие действия над структурами (данными). Поскольку функция компилятором воспринимается как указатель на функцию, то какая-то гениальная зараза (Бъярн Страуструп) придумал размещать указатели на функции... в самих же структурах данных. Естественно, это потребовало доработки стандарта синтаксиса языка, но зато далеко не радикальной (в частности, части private и public). Теперь представим ту же структуру в свете ООП:
Код:
class KeObject
{
private:
DWORD KeObjectType;           //Тип объекта ядра (семафор, мьютекс, процесс....)
    DWORD KeObjectNumber;        //Номер (ID) объекта
    DWORD KeObjectState;          //Состояние объекта (захвачен, свободен, ждет....)
    WORD KeObjectPriority;          //Приоритет (для объектов типа "процесс")
    tagKE_OBJECT KeObjNext;      //Указатель на следующий объект в списке
    tagKE_OBJECT KeObjPrv;        //-"- на предыдущий объект
    tagKE_OBJECT KeFirstChild;    //-"- на первого потомка (список дочерних объектов)
    void* KeObjectBody;              //Указатель на тело объекта
    DWORD KeObjBodyLenght;      //Длина тела объекта (пусть будет в байтах)
[B]//А теперь внимание:[/B] Отсюда начинается та часть класса, которая будет единственно доступна в его объектах. Это собственно конструктор класса, его функция (в моем примере - единственная, но их может быть неограниченное количество) и деструктор класса (я не буду приводить его код - длинно:
public:
KeObject();         //Конструктор. Он нужен в основном для первой инициализации внутренних переменных данного класса.
DWORD CreateKeObject(lpKE_OBJECT lpKeRoot,DWORD KeChild,WORD KeObjPriority,DWORD KeObjBodyLenght,void* KeObjBodyStart);
~KeObject();       //Деструктор.
}
//[B]Важный момент:[/B] Все функции [B]этого[/B] класса имеют доступ [B]ко всем членам структур данных и простым данным этого класса[/B]
PS: Пока осмыслите это, извините что может непонятно - я не люблю писать, я люблю рассказывать и показывать на "живой" машине. Как только будет время - я обязательно постараюсь выложить здесь наиболее доступную для понимания (типа)статью...
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #79
Хорошо описали, однако объектность еще не делает код объектно-ориентированным, для этого еще нужно отразить наследование и полиморфизм.
 
  • 🟢 15:48 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #80
Код:
public:
KeObject();         //Конструктор. Он нужен в основном для первой инициализации внутренних переменных данного класса.
DWORD CreateKeObject(lpKE_OBJECT lpKeRoot,DWORD KeChild,WORD KeObjPriority,DWORD KeObjBodyLenght,void* KeObjBodyStart);
~KeObject();       //Деструктор.
}
//Важный момент: Все функции этого класса имеют доступ ко всем членам структур данных и простым данным этого класса

а можно в функцию CreateKeObject ничего не передавать ?