Обява

Свий
Няма добавени обяви.

Среда за програмиране

Свий
X
 
  • Филтър
  • Час
  • Покажи
Изчисти всичко
нови мнения

  • Среда за програмиране

    Знам, че въпроса ще прозвучи малко тъпо, затова започвам с обясненията.

    Поради вроден мързел, дълго време си правех нужния ми приложен софтуер за ПеЦе-та на Вижуал Бейсик. Горе долу от времето, по което излезе четвърта версия, тоест от около два милиона години. Обаче напоследък имам проблем. Софтуер на VB6 (любимата ми и май единствения Майкрософтски продукт, който наистина харесвам) все още върви на съвременните Майкрософски ОС, но само докато не се опре до връзка с хардуера. От там нататък нещата свършват на ниво XP, 7 и 8 - забрави.
    Естествено, пробвах да се позабавлявам със дотнет, но това е такова чудовищно недоразумение, че веднага се спомних защо всъщност не обичам Майкрософт. За Си шарп съм чувал добри отзиви, но не съм се заигравал, нямам и намерение. VB.net е тотална отврат и бъгавия. Сигурно бих го прежиивял, но единственото предимство, което VB по принцип някога е имал - простотата, в новите версии е само спомен.

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

    И сега на въпроса: препоръчайте ми нещо за писане на приложни програмки, много желателно с WISWIG интерфейс (както казах - мързел съм), с максимално опростени езикови конструкции, а ако пък се улучи и да е многоплатформено и не безкрайно екзотично - направо ще е върхът. Само Win или само Linux пак е добре. Задължително да има начин за комуникация през УСБ и РС232 и това да не изисква няколко седмици писане и псуване. Трябва да може да поддържа елементарни бази данни, формата няма особено значение.

    Ъъъъ ... само да добавя - че съм мързел - мързел съм, но ми е ясно, че без учене няма да мине. Просто си искам любимата концепция, която позволява да се създаде някакъв интерфейс с 5 клика на мишката и след това да се накара да работи, без да се налага да пиша две страници дефиниции, само за да разбера, че 2+2=4. Все пак, основно се занимавам с хардуер и когато се опре до програми, най-често са на асемблер и са за някой микроконтролер.
    О879 342 54О Не си пъхайте пръстите където ви падне, не са чак толкова много...

  • #2
    От: Среда за програмиране

    1. Обясни моля, кое точно забива - средата, или самата програма, дето пишеш
    2. VB.NET всъщност си е много добра благина - трябва само да се счупиш да му схванеш идеята.
    3. C# = VB.net, ама с друг синтаксис. Понеже масово се пише повече на езици, приличащи на C - по-удобен е. Но понякога писането е повече. Но няма нещо написано VB.net дето да не може да се направи на C# и обратното - те са като 2 обвивки на един и същ бонбон.

    Според мен ако ще пишеш под Windows, VB.net и C# нямат твърде много алтернативи. При VisualC++ става още по-сложно.

    Комуникацията под USB си е боза по дефиниция и там без писане няма да стане. Точно в момента си пиша поредната библиотека точно за VB.NET/C# за комуникация с USB HID устройства. За Generic USB съм я написал отдавна. Ей-тия данни текът между проектирано и изработено от мен USB устройство и компа:
    http://www.youtube.com/watch?v=JqxNEAugQ_s

    Просто трябва да свикнеш с многозадачността и особеностите покрай нея. Малко е тегаво в началото, но се свиква сравнително бързо. Дали ще ползваш IDE-то на Майкрософт или някое друго е без значение. Аз нямам проблем със забиване, а поне от 2 години работя именно това.

    ПП: И, във VS2010 даден интерфейс се създава почти толкова лесно, колкото и във VB6. Разликата е точно въпросната многозадачност и особеностите покрай нея. Например целия ти графичен интерфейс въврви в собствен си thread, и ако искаш да го бъзикаш пез друг thread, за това си има съответните начини. Не е трудно щом го схванеш, повярвай ми. А после има вероятност чак и да ти хареса. Без интернет под ръка обаче си загубен, поне в началото. Има примери за кажи-речи всичко.

    ППП: Комуникацията през RS232 под VB.NET/C# е елементарна. Кое по-точно те притеснява?
    Последно редактирано от sparkybg; 05-07-13, 22:10.
    Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

    Коментар


    • #3
      От: Среда за програмиране

      Първоначално публикуван от sparkybg Преглед на мнение
      1. Обясни моля, кое точно...
      Интересно, мислех си, че поне ти ще ме разбереш
      По ред на номерата:
      1. Забива самата среда. То ако моите писанки забиват - майната им, нямам намерение да виня когото и да било за собствените си грешки. Но самото VS когато реши да забие ... особено когато реши да забие по време на обмен, настава едно чакане, едно обясняване, че "ама бъгнах се" - "знам" - "Ама ще се затворя" - "Ми затваряй се" - "ами няма, щото дебъгера се бъгна" - "затвори всичко тогава" - "ами няма, щото чакам (5 минути, буквално) дебъгера да се сети, че е забил" - "Абе затвори се бе!" - "Добре, затворих се, ама съм локнал всички ресурси и без рестарт няма да тръгна повече". И това като ми го изтряска 3 пъти за един час, от които 2 последователни и то точно, когато вече съм на финала и почиствам последни простотийки, вярвай ми, докато се "наговорим", вече съм забравил що се е бъгнало и ми иде да метна лаптопа през терасата.

      2. Не знам какво му е благото, ако имаш предвид наглия помощник - много повече ми пречи, отколкото да ми помага. А идеята му наистина не я схващам. Учил съм Паскал, учил съм Си, по принуда съм учил и малко Делфи (наложи се преди време да се охака една програмка, на която по случайност имаше около 1/3 от сорса - справих се), но нищо от това не ми е харесало достатъчно за целта, за която ми е нужно.
      Да не говорим за супернаглия помощник, който доста повече ми пречи, отколкото да ми помага.
      Съвсем да не говорим, че като искам да създам масив от контроли става баааааааааси бозата тегава... Ей тия последните две неща сами по себе си са достатъчни да ме откажат от VS.Плюс всички останали простотии.

      3. Подозирах, че е така, структурата ми се видя твърде еднаква, но както казах - не съм се забавлявал задълбочено, нямам и намерение.

      какво му е лесното на комуникацията с RS на VB.net? Това, че се налага аз да му казвам да си наглежда порта? В сравнение с VB6 е пълна скръб.

      относно многозадачността - не схванах какво има да и свиквам, все пак не говорим за QBasic В Интернет за хелп ровя достатъчно много и това не ме дразни. Ако имаш предвид Асемблера - той си е за друго място и "не бъркам двата щата".
      Както казваше едно приятелче "Нормалните хора учат десетина години, ние до живот " и си е така. Преди няколко години ми се наложи да правя един дребен сървър с база данни - заебах за няколко месеца всичко, налегнах на PHP с SQL и малко Апач - направих го, и до днес си бачка без забележка. Сега си прави сметка на фона на изброеното до тук, за да откажа тотално да се занимавам повече с VS, колко точно трябва ми е вдигнала кръвното тая среда.

      Тъй, наревах се.

      Чудех се дали да не наблегна на Джавата? А ако някой препоръча по-читава алтернатива - добре дошло.
      О879 342 54О Не си пъхайте пръстите където ви падне, не са чак толкова много...

      Коментар


      • #4
        От: Среда за програмиране

        Еми казах ти за благината - трябва да се "счупиш" в сегашната си представа за програмиране. VB6 беше еднозадачно, съответно по-просто и имаш да мислиш за по-малко неща - тук е точно обратното - многозадачно и трябва да мислиш винаги за това.

        Само ще ти кажа че след като 11 години си изкарвах хляба с VB6, сега не искам и да чувам за него.

        За заспиването на средата - вероятно имаш някакъв друг проблем. Никога не съм имал особени грижи с това. Компютъра в работата ми се шътдаунва сам за уикенда - разбирай - цяла седмица не се рестартира.

        Наглия помощник мисля че може да се изключи. Ама с изключен помощник си точно толкова за никъде, колкото и без интернет.

        Комуникацията с com порта - има си вграден клас SerialPort, който си има event при получаване на данни. Кое му е сложното? Ама не си дръжен да го ползваш - можеш да си направил собствен според вкуса си.

        Код:
        private static void SendSampleData(){  
           SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);    // Instantiate the communications port with some basic settings
           port.Open();                                     // Open the port for communications
           port.Write("Hello World");                       // Write a string
           port.Write(new byte[] {0x0A, 0xE2, 0xFF}, 0, 3); // Write a set of bytes  
           port.Close();                                    // Close the port
        }
        Кое му е сложното?

        За друга среда - опитай това: http://www.icsharpcode.net/OpenSource/SD/

        Не знам само дали става и за VB.net или е само за C#.

        За масив от контроли - да, по-сложно е, ама е за добро. Имаш по-голяма свобода на реализация. Ако го правиш заради общи event handler-и, няма нужда да е масив - можеш на няколко контрола да сложиш един и същ event handler, поне под C#. (под VB.net не знам как се прави, щом на C# може, значи и на VB може).

        Та, едното е простичко но ограничаващо, другото е сложно, с повече писане, но ти дава свобода да правиш точно каквото искаш. И, помни ми думата - като му свикнеш вече не е толкова страшно, а даже напротив.

        За Java не мога да ти дам акъл. Ясен пише на Java, до колкото помня.

        Според моите чисто потребителски наблюдения повечето средностатистически Java програми за PC са мудни, бавни и бъгави. Например за програмиране на PIC-льовците използвам MPLAB-X. Сигурно около 10-ина пъти по-бавно е от стария MPLAB, писан на VS. Да, преносимо е, ама на каква цена?

        ...пък и не мисля че там нещата ще се коренно по-добре от VS2010. И там ще има да се бориш доста, даже може би повече.

        ПП: Под Win7 64 работя. Не знам за конфигурацията на лаптопа ти, но ако е слабичък и/или с XP, може и от това да са честите забивания. Никакъв, ама никакъв проблем нямам с това. Не е като никога да не забива, ама ей-сега например не мога да с е сетя дори кога за последно е забивал.
        Последно редактирано от sparkybg; 06-07-13, 11:38.
        Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

        Коментар


        • #5
          От: Среда за програмиране

          Първоначално публикуван от sparkybg Преглед на мнение
          ... VB6 беше еднозадачно, съответно по-просто и имаш да мислиш за по-малко неща - тук е точно обратното ...
          ...Та, едното е простичко но ограничаващо, другото е сложно, с повече писане, но ти дава свобода да правиш точно каквото искаш....
          E за това става дума - простичкото ми вършеше перфектна работа. Просто нямам нужда от цялата "свобода", особено на цената на писане на милион дивотии. Затова и уточних, че не съм професионален програмист, нито имам желание да ставам такъв. простичко, лесничко и в общи линии - работещо. Не, че в старото нямаше някои вбесяващи дивотии - от сорта на this.shit = this.shit + 1, вместо отдавна измисленото this.shit += 1, но за моите нужди си беше съвсем приемливо и ненапрягащо. В общи линии, ако имам избор, предпочитам да не се "чупя"

          Първоначално публикуван от sparkybg Преглед на мнение
          ...Комуникацията с com порта - има си вграден клас SerialPort, който си има event при получаване на данни. Кое му е сложното? ...

          ПП: Под Win7 64 работя. Не знам за конфигурацията на лаптопа ти, но ако е слабичък и/или с XP, може и ...
          Коминукацията с ком-порта има евенти ... само дето не бачкат. Вместо да пращаш, пробвай да четеш нещо, разчитайки благородно, че когато има събитие, примерно нова порция байтове, тъпото нещо ще се сети да ги прочете и да си потърси суб-а, тоест да реагира на събитието. Има да си чакаш...

          Да, Windows частта на лаптопа ми е XP SP3, по причини нямащи връзка с VS. И се ебава зловещо. В смисъл VS, не ХР-то. С никакъв друг софт нямам проблем.
          И да, машинката е "слаба" - кор две дуо на 2 гигахерца и 2 гиги рам .... бахти, колко трябва да му насосам, че досадния помощник да спре да се мотка? Все пак, не правя действащ модел ферари под Солидуоркс

          Виж, Спарки, ти си вадиш хляба с това нещо. На мен ми трябва инцидентно, колкото да спретна някакъв интерфейс с 5 копчета накръст, евентуално с 5-6 таблици, някакъв начин за обмен на данни (малко данни) и начин всичко това да се изпечата на 2 листа или да се запише в някой скромен формат - csv или rtf примерно. Ако не е проблема с комуникацията, честно ти казвам, да съм минал на PHP, с все мотлявия парсер и Апача.

          П.П. Относно Джавата - и аз имам едни такива наблюдения ... затова все още я заобикалям... отдалече и се ослушвам за алтернатива. Е, ако няма ... ще си сядам на задника и ще си спомням Си-то, поне да знам що се хабя...
          О879 342 54О Не си пъхайте пръстите където ви падне, не са чак толкова много...

          Коментар


          • #6
            От: Среда за програмиране

            Първоначално публикуван от tef4o Преглед на мнение
            Коминукацията с ком-порта има евенти ... само дето не бачкат. Вместо да пращаш, пробвай да четеш нещо, разчитайки благородно, че когато има събитие, примерно нова порция байтове, тъпото нещо ще се сети да ги прочете и да си потърси суб-а, тоест да реагира на събитието. Има да си чакаш...
            Ми при мен ги дочаквам. Никакви грижи не съм имал с ивентите. Нещо вероятно не правиш както трябва. При това бачкаха на сериозен обем данни, разпределени на малки порции. Същото като на клипа преди да го пусна през USB-CAN преходник, вървеше през преходник USB-COM, после COM-CAN в един PIC-льо, и после по CAN шината до въпросното чудо. При това само с TX и RX линии, без ни един друг сигнал.

            ПП: Да не говорим че можеш да си сложиш един твой си thread дето постоянно да чете COM порта и да ти дава ивент, което под VB6 просто няма как да стане. Това впрочем си е съвсем стандартен начин за правене на такива неща под .NET. Затова ти казвам че е благинка. VB6 го пускаш на 4 ядрен процесор, то пълни една нишка и си до там - 3/4 от компютъра бездейства, а ти висиш и чакаш програмата ти да свърши нещо.

            В момента ти пиша от дъртичък вече core 2 на 2.53Ghz лаптоп с Win7 и 8GB RAM и грижи няма абсолютно никакви. Като беше с 4GB и XP - пак не помня да съм имал грижи. 2 гиги са си малко памет по днешните стандарти, че и по вчерашните. Като добавиш че е и лаптоп с принципно по-бавна периферия - още по. Ако и видеото не е със собствена памет - станаха гигабайт и половина. Това едвам е достатъчно за операционната система даже хич нищо повече да няма инсталирано.

            Виж чудото, към което ти дадох линк. Твърде вероятно е да е по-леко, поне като интерфейс.
            Последно редактирано от sparkybg; 06-07-13, 18:01.
            Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

            Коментар


            • #7
              От: Среда за програмиране

              Първоначално публикуван от sparkybg Преглед на мнение
              ...Да не говорим че можеш да си сложиш един твой си thread дето...
              Така и направих накрая. Бачка си, вече година и нещо на 4 машинки, но продължава да не ме кефи
              Чудото го погледнах, идеята му е близка до това, което искам, доколко свястно е реализирано - ще разбера близките дни, че имам една спешна задачка за довършване и ще пиша.
              О879 342 54О Не си пъхайте пръстите където ви падне, не са чак толкова много...

              Коментар


              • #8
                От: Среда за програмиране

                Първоначално публикуван от tef4o Преглед на мнение
                Така и направих накрая. Бачка си, вече година и нещо на 4 машинки, но продължава да не ме кефи
                Е то оригиналнaта библиотека най-вероятно го прави по същия начин. Това си е съвсем стандартен подход за такива неща.
                Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

                Коментар


                • #9
                  От: Среда за програмиране

                  Първоначално публикуван от sparkybg Преглед на мнение
                  Е то оригиналнaта библиотека най-вероятно го прави по същия начин. Това си е съвсем стандартен подход за такива неща.
                  Не го прави. изгубих си три дена да чета и да експериментирам, докато най-накрая не ми влезе в главата, че оригиналната библиотека просто има лек проблем със събитията. Реших го с рога напред - на всеки 30 милисекунди (в конкретния случай ми е достатъчно) питам модула дали все пак не се е случило нещо и чак тогава тъпото животно се сеща и казва: аааа ... ми май има тука едни 48 байта за четене ... и нещата се случват. Това между другото.
                  Преди малко набарах и един весел бъг на RTF модула, оказва се, че е лко скаран с форматирането на таблици. Чете правилно, записва правилно, обаче визуализира с малка, но силно дразнеща грешка.
                  Майната му, това са ми последните редове, които изобщо пиша на VS...
                  О879 342 54О Не си пъхайте пръстите където ви падне, не са чак толкова много...

                  Коментар


                  • #10
                    От: Среда за програмиране

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

                    Сега имай предвид че старите издания на .NET фреймуорка имаха и някои бъгове. Работи с възможно най-новата, която ще ти свърши работа.
                    Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

                    Коментар


                    • #11
                      От: Среда за програмиране

                      Не съм чел всички мнения нагоре. Всичко под .NET не е realtime, т.е. би трябвало да работи зле с real time хардуер, ако въобще! За Java се мушка специален слой в ролята на нещо като драйвер.
                      Коминукацията с ком-порта има евенти ... само дето не бачкат. Вместо да пращаш, пробвай да четеш нещо, разчитайки благородно, че когато има събитие, примерно нова порция байтове, тъпото нещо ще се сети да ги прочете и да си потърси суб-а, тоест да реагира на събитието. Има да си чакаш...
                      Е те това имам предвид. Няма как да стане под .NET

                      Коментар


                      • #12
                        От: Среда за програмиране

                        Първоначално публикуван от Rabin Преглед на мнение
                        Е те това имам предвид. Няма как да стане под .NET
                        Интересно защо при мен става.

                        Под .net можеш да работиш с windows API-то, точно както и през VB6, ако ти се налага. И е точно толкова real time, колкото и VB6. Разликата е че там чакаш за всичко, а тук си пускаш thread-ове за всичко, ако не искаш да чакаш, със все разправиите за комуникация между thread-овете, ако ти се налага.

                        В случая, щом по неизвестна причина не работи, правиш си един четящ и един пишещ thread, отваряш по един стрийм (или един общ), и съответния thread като докопа нещо, вика програмата ти през event или директно. Другия начин е с асинхронно четене и писане, за което си има съответните методи във FileStream класа. Точно в момента с това се разправям - правя си библиотека за комуникация с USB HID устройства, понеже са удобни защото не искат нарочни драйвери.

                        Има и билиотеки за DirectInput и прочие, ако чак това ти се налага, а може да се работи и директно с fileread и filewrite от window API-то.
                        Последно редактирано от sparkybg; 07-07-13, 15:39.
                        Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

                        Коментар


                        • #13
                          От: Среда за програмиране

                          To работи, ама гаранция няма. .НЕТ не е за неща, дето искат гарантиран отговор от някакви милисекунди. За такива работи се слага втори процесор, и .НЕТ си говори през драйвер. Идеята е да не товариш CPU само ти, и много други неща, там garbage collection едно друго...
                          Под .net можеш да работиш с windows API-то, точно както и през VB6, ако ти се налага. И е точно толкова real time, колкото и VB6.
                          Проблемът не е езика, а framework под него. И е много, много дебела екосистема. С второто изречение не съм съгласен.

                          Коментар


                          • #14
                            От: Среда за програмиране

                            Че той windows-а не става за гонене на милисекунди, какво остава за нещо над него.

                            Впрочем, току що пробвах SharpDevelop. В пъти по-леко е от оригиналното IDE на VS2010. Отваря сигурно 10-ина пъти по-бързо на лаптопа ми. Току виж ми харесало.
                            Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

                            Коментар


                            • #15
                              От: Среда за програмиране

                              Това чудене цели екипи до мъдриха в в една от фирмите, дето бачках. Ясно защо избраха неуправляемо С++, ако и да е най-труден от алтернативите. А фирмата, дето ползва някакво дебело ядро под Жава - мога да я пратя на ЛС, да не ревнат, че ги разнасям с какво работят. Не е от хубаво това усложнение, че и свят пари струва.

                              Коментар

                              Активност за темата

                              Свий

                              В момента има 1 потребители онлайн. 0 потребители и 1 гости.

                              Най-много потребители онлайн 8,787 в 16:37 на 21-06-23.

                              Зареждам...
                              X