Visual Basic programok futtatása Linux-on (is)

Címkék

A Mono Project tegnap bejelentette, hogy egy olyan Visual Basic fordítót fejlesztett ki, amely lehetővé teszi a Microsoft Visual Basic-et használó programozók számára, hogy módosítás nélkül futtathassák programjaikat minden olyan platformon - köztük Linuxon is -, amelyen a Mono fut.

"The Mono project announced today that it has developed a Visual Basic compiler that will enable software developers who use Microsoft* Visual Basic to run their applications across multiple platforms without any modifications to the code. The new Mono Visual Basic compiler allows developers to continue to code in their preferred Visual Basic/Visual Studio environment and compile and run that same code base on a variety of operating systems and architectures, including Windows*, Linux*, and Mac OS*."

A bejelentés itt.

Hozzászólások

Ha Tankó Péter/Zokszigén jelen van az olvasók között, akkor szeretném kérni, hogy kommentálja a hírt az ismert és közkedvelt stílusában! :))

--
Sokan nincsenek tudatában annak, / hogy egyszer mindenki meghal. / Akik ráébrednek erre, / azonnal abbahagyják az ellenségeskedést.

ugyan nem kimondottan lausiv cusab uras (innováció témájában értekezik), de erősen témába vágó causticphil link volt már zokszigenblogban:

"you know what i find to be even more fucking hilarious... oh, this is so fucking rich... the fucking fastest growing development platform for linux is.... TA-DA... MONO!! man, i can barely type this shit i'm laughing so fucking hard. how great is this. this is just fucking too good to be true! in my book, this fucking takes the cake. i think now it's only a matter of fucking time before some young, ambitious open source developer decides to port cmd.exe and explorer.exe to linux as well... jesus. fucking. christ."

Tévedés ne essék: nem VisualBasic, hanem VisualBasic.NET fordítóról van szó!
(Szép is lenne, ha most minden régi VisualBasic-ben írt kódot hirtelen le lehetne fordítani Linux alá.)

Az új fordító VB8-as kódot fordít, korábban erre nem volt teljesen lehetőség (nem volt a VB fordítóban pl. generics támogatás), bár az esetek többségében simán át tudtam fordítani a problémás VB-forrást SharpDevelopban C#-ra.
Hogy miben más a VB.NET mint a C#, fogalmam sincs, mert a hideg futkos a hátamon a begin-end, if-endif és hasonló blokkszerkezetet használó programnyelvektől.

if-end if van, de begin-end nincs.

Azt én is tudom, mi a VB.NET, csak arra voltam kiváncsi mi a difi a rendes mono-s fordít és e között.

Amúgy én meg a java-C szerű nyelvektől állítok a hátamon szőrt. szeretem tudni, hogy minek van vége, ez egy } jelből nem látható rögtön.

Ebből se?


if(valami==1)
{
     if(!ez) /*komment, ahogy a lentinél :)*/
     {
          for(i=1;i<sok;i++)
          {
               fv(i);
          }
     }
}

Szerintem ugyan olyan jól átlátható, mint pl:


if valami=1 then
begin
     if ez<>true then {itt lehet, hogy lehet rövidebben is}
     begin
          for i:=1 to sok-1 do
          begin
               fv(i);
          end;
     end;
end;

Nekem egyébként éppen az utóbbi zavaró jobban. Mivel el kell olvasnom, hogy mi akar lenni az a szó (begin, end), valamint a zárójelek hiánya if, for, while, stb. esetében.

Figyelj, én nem a 6 soros ifekről beszélek, hanem amikor egy if két-három konzolképernyőn átnyúlik, ott már igencsak nehéz kiigazodni. Olyankor is, ha 5 if meg 6 for meg még mittomén mi van még egymásbaágyazva. Tudom ne programozzunk így, de sok proramozó van aki így dolgozik, és egy ilyen kódot szinte mission impossible átlátni.

PS: amit te írtál az amúgy max pascal vagy delphi, vagy ilyesmi, de a basic nem ilyen:


If valami = 1 Then
   If Not ez Then
      For i=1 To sok-1
          Print "sok"
      Next i ' Ez opcionális, el lehet hagyni
   End If
End If

Case-insensitive, csak azért írtam így, hogy láss egy normális VB kódot is. Nincs pontosvessző, a sorok végén Enter van, a Next mögül a változó elhagyható (amennyiben az utoljára megkezdett ciklust zárod le vele), egy darab aposztrof a komment.

Mielőtt kérdenéd: igen, VB-fan vagyok.