User Tools

Site Tools


it_description


PIATTAFORME

Object oriented + Moderno linguaggio BASIC + Full-featured IDE + Documentazione al completo

KBasic è supportato sulle seguenti piattaforme:

  • Windows Vista, 2000 e XP (i programmi creati con KBasic possono essere eseguiti sulle vecchie versioni Windows: Win95, Win98, WinMe e WinNT)
  • Linux (KDE o GNOME), sistemi UNIX come FreeBSD stanno per arrivare
  • Mac OS X (>= 10.3)

Puoi creare moderne applicazioni BASIC per Windows, Mac OS X e Linux con sintassi BASIC ma in veste moderna.

DESCRIZIONE

www.kbasic.com_images_symbol.jpg Giunge con una sintassi simile a Java orientata agli oggetti e retrocompatibilità con VB6 e QBasic, essendone 100% compatibile, ma non è un clone VB6 o VB.NET! Sebbene abbia una sintassi simile a quest'ultimo, per quanto riguarda funzioni, oggetti simili e classi. KBasic combina la potenza espressiva di un linguaggio object oriented come il C++ con la familiarità e facilità d'uso del VB6. Consente a sviluppatori con una base installata di applicazioni VB6 d'iniziare a sviluppare per gli ambienti Mac OS X e Linux senza dover affrontare una curva d'apprendimento ripida: KBasic usa il familiare paradigma del visual design e implementa pienamente il linguaggio BASIC.

KBasic è costituito dai seguenti programmi: www.kbasic.com_images_virtualmachine.jpg

  • un'ambiente di sviluppo con un form designer visuale (IDE)
  • un compilatore (KBC)
  • un interprete (VM)
  • un componente ad interfaccia grafica. (VM)

È circa 5 MB di codice sorgente (C++)

130,000 righe di programmazione, 100 classi, 500 metodi in 280 file.

È veramente facile sviluppare applicazioni GUI multi-piattaforma con la ben nota sintassi BASIC in stile moderno, poiché KBasic usa il familiare paradigma visuale e implementa completamente il linguaggio BASIC. KBasic usa Qt per fornire funzionalità multipiattaforma (Qt è una tecnologia multipiattaforma leader nel mondo).


Sommario delle caratteristiche www.kbasic.com_images_languageelements.jpg

Nelle pagine che seguono farai la conoscenza di KBasic: anche se non posso descrivere ogni cosa in dettaglio come in un libro, descriverò alcune delle feature di KBasic ad un livello esperto. Nondimeno se conosci C++, VB6, BASIC o simili, oppure Java, non avrai difficoltà a procedere: ne condivide molti concetti.

Il libro di KBasic: il libro contiene informazioni dettagliate su KBasic; le puoi trovare nel KBasic Software Atelier nel menu 'Help'. È incluso come file PDF e HTML; quindi se sei interessato ad una trattazione riga per riga per favore fai riferimento al libro KBasic.

www.kbasic.com_images_openfileformat.jpg

  • Write once e deploy di applicazioni native per Windows, Mac OS X e Linux
  • feature OOP RAD per un alta produttività
  • Molto meno costoso di altri BASIC
  • supporto “backward” (NdT: retrocompatibile) a VB6 e “forward” per l'ereditarietà e altre caratteristiche OOP
  • Su piattaforme multiple
  • Il porting di progetti VB6 già esistenti è facile, perché la sintassi KBasic ne è compatibile al 100%
  • Processo di sviluppo ben noto
  • Stessa sintassi di VB6
  • Facile da imparare: suggerimenti incorporati built-in e riferimenti al linguaggio
  • Diventa più produttivo grazie all'ambiente RAD
  • Gestione della memoria built-in memory via reference counting
  • Reale deployment cross-platform
  • Note feature del linguaggio: OOP, singola ereditarietà, eccezioni, ecc.
  • Sviluppo GUI Drag & drop
  • Ricco set di widget
  • feature di editing d'uso comune: browsing semplice e veloce del codice sorgente
  • feature di editing d'uso comune II: autocompletamento di funzioni builtin e tipi di dati * autocompletamento (solo nella versione Professional)
  • feature d'uso comune debugging: single step (passo singolo), valori delle variabili * installa/disinstalla: per Linux (KDE), Mac OS X e Windows


  • Ampia documentazione!

KBasic giunge con un'ampia documentazione ipertestuali, così puoi cliccare dove t'interessa. La parte di documentazione che probabilmente userai per la maggiore è il KBasic Language Reference; ogni link fornisce un modo diverso di navigare il KBasic Language Reference; provali tutti per vedere qual`è meglio per te. Potresti anche provare il libro di KBasic che contiene informazioni dettagliate su KBasic, e ha un sistema di ricerca testuale. Ci sono anche un numero sempre crescente di libri KBasic.

www.kbasic.com_images_objectoriented.jpg


  • Migliaia di esempi!

KBasic contiene molti esempi di programmi che t'insegnano a come implementare differenti tipi di task con KBasic. La maggior parte di essi ti mostrerà classi e mouduli, altri tecniche di programmazione e le basi, e alcuni semplicemente ti faranno vedere cosa è possibile.

Nota che la maggior parte degli esempi ipotizzano che tu abbia una qualche esperienza con KBasic e la programmazione Object-Oriented e perciò non sono ampiamente commentati. Se sei interessato ad una copertura riga per riga fai riferimento a “Learning Coding for Beginners” e a “The KBasic Book”.

www.kbasic.com_images_codeeditor.jpg www.kbasic.com_images_formdesigner.jpg www.kbasic.com_images_projectwindow.jpg www.kbasic.com_images_morewindow.jpg

Dettaglio feature

KBasic

  • è object oriented con oggetti e classi, ereditarietà singola e polimorfismo e scope private, public, e protected scope degli elementi
  • sintassi compatibile con vecchi BASIC come QBasic o VB6
    • parametro opzionale
    • array a parametri variabili
    • argomenti con nome [mySub(param1 := 23, param2 := 100)]
    • on error goto
    • etichette e goto
    • naming della variabile (con scorciatoie come name$ o n%)
    • proprietà
    • anche arrays e tipi di dati definiti dall'utente possono essere passati alle funzioni per riferimento
    • contiene una virtual machine
    • garbage collection automatica
    • dati e array sicuri
    • moderna gestione degli errori attraverso le eccezioni


KBasic non è uno, ma tre linguaggi di programmazione.

Tramite uno dei seguenti comandi puoi passare ad una delle tre modalità KBasic.

Se vuoi usare le nuovissime caratteristiche (Default) usa
OPTION KBASIC
Se vuoi usare del vecchio codice VB6
OPTION OLDBASIC
Se vuoi usare del vecchissimo codice BASIC come QBASIC:
OPTION VERYOLDBASIC


È possibile usare tutte e tre le modalità nel tuo programma, per es. un modulo usa un modo e un altro ne usa un altro. Semplicemente colloca una di queste righe in cima al tuo modulo. L'opzione di default è OPTION KBASIC.

www.kbasic.com_images_onerrorgoto.jpg

Naturalmente, come altri liguaggi di programmazione, KBasic giunge con comandi per il controllo di flusso, conversione/cast, trattamento degli errori, eventi e funzioni di libreria come GUI, input o output, math e così via: vedi i riferimenti al linguaggio per maggiori info. Inoltre dovrebbero esserti familiari le seguenti parti.

  • Classe / Modulo
  • Sub / Funzione / Metodo
  • Variabile / Costante / Proprietà
  • Array
  • Type
  • Enum

Se inizi a lavorare con il tuo primo programma KBasic tieni a mente che è molto simile a VB6; hai moduli o classi e form, che lavorano assieme. Gli eventi nei tuoi form sono azionati dall'utente e puoi rispondere ad essi nel tuo programma all'interno delle subroutine: questo è quanto. www.kbasic.com_images_polymorphism.jpg



Annotazioni

  • Tipo
  • Variabile / Costante / Proprietà
  • Scope di una variabile
    • globale
    • modulo
    • classe
    • locale
      • funzione o sub
      • metodo di classe statica
      • metodo d'istanza di classe
  • Array
    • statico
    • dinamico
  • Sub / Metodo
    • argomenti di default
    • passaggio di argumenti per reference ed è possibile quello per valore a seconda del tipo primitivo
    • overloading delle funzioni possibile
    • sono possibili chiamate ricorsive
    • variabili locali non primitive (oggetti) non vengono automaticamente distrutti se c'è un riferimento ad essi
    • maneggiamento delle eccezioni
  • Funzione / Metodo
    • argomenti di default
    • passaggio di argumenti per reference ed è possibile quello per valore a seconda del tipo primitivo
    • overloading delle funzioni possibile
    • sono possibili chiamate ricorsive
    • (possono essere restituiti anche tipi di dati definiti dall'utente e array (in futuro))
    • variabile locali non primitive (oggetti) non saranno automaticamente distrutte se c'è un riferimento ad esse
    • maneggiamento delle eccezzioni
  • Scope
    • globale
    • modulo
    • classe statica
    • istanza di classe
    • locale
      • modulo
      • classe statica
      • istanza di classe
  • Classe
    • Costruttore (overloading del metodo possibile)
    • Costruttore di default (chiamato automaticamente se non ne viene definito uno)
    • Distruttore (viene chiamato automaticamente dal garbage collector)
    • metodi d'istanza (lavora sulle variabili di un oggetto di una classe)
    • metodi statici (funzionano senza alcuna relazione con un oggetto)
    • variabili d'istanza (private, public, protected), variabili di un oggetto di una classe
    • variabili statiche (lavorano senza alcuna relazione con un oggetto)
    • parte di codice sorgente statico di una classe (viene eseguito all'avvio del programma)
    • costanti statiche
    • supporto di proprietà
    • variabili (private, protected, public)
    • costanti (private, protected, public)
    • tipi / enum possono essere private o public
    • tutti i metodi sono 'virtual' (in terminologia C++), il che vuol dire che il metodo figlio è chiamato dalla classe genitore invece che dal metodo originale che è stato sovrascritto dalla classe
  • Modulo
    • sub o funzioni
    • variabili (private, public)
    • costanti (private, public)
    • tipi / enum può essere private o public
  • Globale
    • sub o funzioni
    • variabili
    • costanti
    • tipi / enum


Esempi di sintassi

www.kbasic.com_images_type.jpg www.kbasic.com_images_variable.jpg www.kbasic.com_images_array.jpg
www.kbasic.com_images_array.jpg www.kbasic.com_images_sub.jpg www.kbasic.com_images_exception.jpg
www.kbasic.com_images_function.jpg www.kbasic.com_images_class.jpg www.kbasic.com_images_constructor.jpg
www.kbasic.com_images_instancemethod.jpg www.kbasic.com_images_property.jpg www.kbasic.com_images_module.jpg
www.kbasic.com_images_global.jpg www.kbasic.com_images_instancevariable.jpg


Open Source

Stai dietro le quinte! Scopri di più sulla macchina KBasic. Puoi avere il codice sorgente di KBasic. Per saperne di più source_codes.

www.kbasic.com_images_opensource.jpg

ESEMPI

KBasic – Esempi

Stai dietro le quinte! Scopri di più su KBasic.

  • Clicca Esempi per maggiori informazioni.

Ecco qui un esempio di programma.

Per una maggiore comprensione il programma che segue copre molti degli aspetti menzionati sopra

Const globalConst = 1 
Const globalConst2 As Integer = 2 
Dim globalVar As Integer = 4 
Dim globalVar2 As test 
 
globalVar2 = test.Entry 
 
 
  
' global scope  
 
Enum test 
  Entry = 666 
  Entry2 
  Security = Entry 
  securus 
  secura 
  securum 
End Enum 
 
Type book  
  bkname As String * 100   
  isbn(1000) As Integer   
End Type 
 
Type address 
  books(50) As book   
  age As book   
  Name[9] As Integer   
End Type 
 
 
Sub globalSub() 
  Dim localVar = 99    
End Sub 
 
 
' scope a livello modulo
 
Module module1 
 
  Public Type address    
    age As Integer     
  End Type 
 
  Public Type module_type    
    element AS integer 
  End Type   
 
  Public Enum module_enum    
     Entry 
     Entry2 
     Security = Entry 
  End Enum 
 
  Const moduleConst = 7  
 
  Public publicModuleVar As Integer  
  Private privateModuleVar As Integer  
                  
 
  Sub moduleExplicit() 
    Dim localVar = module1.publicModuleVar  
    dim localVar2 = module1.moduleConst 
 '   Dim localVar3 As module1.module_enum '  nome completo non consentito dopo AS 
    Dim localVar3 As module_enum 
    localVar3 = module1.module_enum.Entry 
    'Dim localVar4 As module1.module_type     '  nome completo non consentito dopo AS 
  End Sub 
 
  Sub moduleImplicit() 
    dim localVar = publicModuleVar 
    dim localVar2 = moduleConst 
    dim localVar3 as module_enum 
    localVar3 = module_enum.Entry 
    dim localVar4 as module_type 
  End Sub 
 
  Sub moduleSubWithDefaultArgument(ko as integer = 6) 
    dim localVar = ko 
  End Sub 
 
  Sub moduleSubWithOptionalArgument(Optional ko As Integer) 
    If Not IsMissing(ko) Then 
      dim localVar = ko      
    End If 
  End Sub 
   
  Sub moduleSub() 
    Const localConst = 6 
    dim n = localConst 
  End Sub 
 
  Sub moduleSubWithArgument(i as integer) 
    dim localVar = i 
  End Sub 
 
  Sub moduleSubWithArgumentShadowing(i2 as integer) 
    Dim localVar = i2 
    Dim i2 = localVar + 99 
    dim i3 = i2 
  End Sub 
     
  Sub subOverloading ( ) 
    print "sub1" 
  End Sub 
   
  Sub subOverloading ( i as integer = 1) 
    print "sub2"    
  End Sub 
 
  Function moduleFunction() As String 
     
    subOverloading() 
    subOverloading(88) 
     
    return "hello" 
  End function 
 
  function moduleFunctionRecursive(byref i as integer) as integer 
    if i > 6 then return 1''i 
 
    ''i = i + 1 
    return moduleFunctionRecursive(1)''i) 
  End function 
 
End Module 
 
 
' class scope 
 
Class Walzer 
  Public var As integer 
End Class 
 
 
Class Salsa inherits Walzer 
 
  public Enum class_enum 
     Entry 
     Entry2 
     Security = Entry 
  End Enum 
 
  public type class_type 
    element AS integer 
  End Type 
 
  const classConst = 4 
 
  public publicInstanceVar as integer 
  Private privateInstanceVar As Integer 
  'Protected protectedInstanceVar As Integer  
 
  Static Public publicClassVar As Integer' = 8  
  'dim publicModuleType as module1.module_type 
  dim publicModuleType2 as module_type 
 
  ' chiamata del costruttore genitore dentro il costruttore 
 
  Sub meExplicit() 
    dim localVar = Me.publicInstanceVar '  è lo stesso con Parent 
    dim localVar2 = Me.publicClassVar  
    dim localVar3 = Salsa.publicClassVar 
    dim localVar4 = Salsa.classConst 
    Dim localVar5 = Me.classConst 
'     
    Dim localVar6 As class_enum 
    localVar6 = Salsa.class_enum.Entry 
'    Dim localVar7 As Me.class_enum   '  nome completo non consentito dopo AS 
    dim localVar8 as class_type 
  End Sub 
 
  Sub meImplicit() 
    dim localVar = publicInstanceVar 
    dim localVar2 = publicClassVar 
    dim localVar3 = classConst 
    Dim localVar4 As class_enum 
    dim localVar5 as class_type 
 
  End Sub 
   
  Sub classSub() 
    const localConst = 6 
    dim n = localConst 
  End Sub 
 
  Sub classSubWithArgument(i as integer) 
    dim localVar = i 
  End Sub 
   
  function classFunction() as string 
    return "hello" 
  End Function 
 
   
'  Static Public Sub test() Throws Walzer      
'    Throw New Walzer      
'  End Sub  
   
  
'  Private pvtFname As String  
'   
'  Public Property Nickname As String  
' 
'    Get 
'      print "Hi" 
'    End Get  
' 
'    Set ( ByVal Value As String )  
'      print "Hi" 
'    End Set  
' 
'  End Property  
   
End Class 
 
 
 
CLASS rumba 
 
  Public latein AS INTEGER 
  'Public mySalsa As New Salsa  
  'Public mySalsa2[10] As Salsa  
 ' Public mySalsa3[] As Salsa   
 
 
  PUBLIC SUB dance_rumba() 
    Print "rumba!!!" 
    'print mySalsa.var 
  End Sub 
 
  ' default constructor  
 
  Constructor rumba () 
    print "constructor" 
  End Constructor 
 
  Constructor rumba ( _latein as integer) 
    Print "constructor2" 
    latein = _latein 
  End Constructor 
 
  Destructor rumba ( ) 
    print "destructor" 
  End Destructor 
   
  Static Sub myMsgBox(ByRef m As Double)  
   '' m = m + 1   
  End Sub 
  
  Static Sub myMsgbox2(Optional m As Integer) 
    If IsMissing(m) Then 
     '' m = m + 1   
    Else 
      Print "do nothing"       
    End If 
  End Sub 
 
  Static Function monique(ByRef i As Integer, ByVal h As Double, ParamArray b() As Variant) As Integer  
 
    For i = LBound(b) To UBound(b) 
      Print b(i)     
    Next i  
   
    Return i 
     
  End Function  
 
 
  static SUB structByReference(byref m AS address) 
    ''m.name[2] = 71   
  End Sub 
 
'  static SUB structByValue(byval m AS address) ' struct passata per valore non consentita
'    m.name[2] = 71   
'  End Sub  
 
'  Static Function returnStructByVal() as address ' restituzione di struct non consentita 
'    dim m AS address 
'    ''m.Name[2] = 71  
'    return m 
'  End Sub  
 
'   static SUB arrayByRef(byref m[] AS address) ' argomento array non consentito
'     m[8].name[2] = 71   
'   End Sub   
 
'    Sub test(ByRef t(8) As Long)    ' array a dimensione fissa non consentito  
'    End Sub 
 
'    Sub test2(ByVal t(8) As Long)    ' array a dimensione fissa non consentito  
'    End Sub 
 
'   Static Function returnArrayByRef() as adress[] ' restituzione di un array "aperto" non consentita   
'     dim m[8] AS address 
'     m[1].Name[2] = 71  
'     return m 
'   End Sub  
 
'   static SUB arrayByRef(byref m[][] AS address) 
'     m[8][9].name[2] = 71   
'   End Sub  
'  
'   Static Function returnArrayByRef() as adress[][] ' restituzione di un array "aperto" non consentita   
'     dim m[8][6] AS address 
'     m[1][4].Name[2] = 71  
'     return m 
'   End Sub  
 
END CLASS 
 
 
DIM j(5 TO 10) AS address 
 
 
 
''j(3).namer(6) = 123 
''j(1).age.isbn(10) = 1000 
''j[2].namer[1] = j(3).namer(6) + j(1).age.isbn(10) 
 
 
 
'Dim Emp As rumba = New rumba 
DIM r AS NEW rumba 
 
r.dance_rumba() 
 
'With r 
'  .dance_rumba() 
'End With 
 
'Print r.latein  
'Print r.mySalsa.var 
 
Print globalVar ' accessibile ovunque
Print globalVar2 ' accessibile ovunque
Print globalConst ' accessibile ovunque
publicModuleVar = 99 
Print publicModuleVar 
Salsa.publicClassVar = 111 
Print Salsa.publicClassVar 
print moduleConst 
 
DIM m = 1 AS INTEGER 
 
'PRINT rumba.monique( h:=12.2, i:=m ) 
''Print rumba.monique(m, 12.2, 5, 8, 7) 
 
 
' TRY 
'   Salsa.test() 
' CATCH (b AS Walzer) 
'   PRINT "got you!" 
' End Catch  
'  
 
 

UTILE PER LINUX E MAC!

PERCHÉ KBASIC È UTILE PER LA COMUNITÀ LINUX, WINDOWS O MAC OS X?

Nel 21º secolo dovrebbe essere benevenuto il concetto che chiunque sia in grado di programmare un'interfaccia. La programmazione non ha bisogno di essere riservata ai pochi che sanno, dovrebbe essere semplice come navigare nel web.

  • Design Point and click
  • Point and click per compilare e installare
  • Clicca un'icona per avviare


La vera alternativa

Un moderno computer è ancora inefficiente come dispositivo per risparmiare il lavoro perché richiede una programmazione. Ora se più persone sanno programmare tutto quello di cui hanno bisogno facilmente e velocemente significa che non hanno bisogno d'imparare la sintassi e le parole chiavi - forse chiunque saprà usare un computer.

Probabilmente hai già sentito riguardo allo 'sporco e inefficiente codice' e alle 'cattive abitudini' che i programmatori VB acquisiscono. Questo era vero nel 1960, degli anni '70 e '80 quando eri forzato ad ottimizzare per un minimo consumo di RAM e uso della CPU. Oggigiorno, con quasi ognuno che usa almeno un processore di classe Pentium con 32 MB di RAM, non te ne devi preoccupare.

Ritorno al Basic!

Lascia stare la disciplina, abbraccia l'usabilità e la semplicità!

KBasic ci porta vicino a questa realtà.


Leggi di più

Cos'è?

BASIC = Beginners All-purpose Symbolic Instruction Code (N.d.T.: Codice d'Istruzione Simbolico per principianti)

Standard BASIC

  • BASIC è il linguaggio di programmazione che più sulla Terra si avvicina all'inglese
  • Familiare ai nativi di lingua inglese
  • Nessuna sintassi criptica ai nuovi programmatori
  • Poche regole di programmazione
  • Alcune funzioni BASIC sono molto simili a quelle SQL: LEFT, RIGHT e MID


Esempio:
IF a = 5 AND b < 20 THEN fai qualcosa ELSE fai qualcos'altro


  • KBasic è compatibile con le migliori funzionalità BASIC:

Parole chiavi: IF, THEN, ELSE, ELSEIF, ENDIF, FOR, EACH, NEXT, LOOP, DO, WHILE, GOTO, GOSUB, INTEGER, STRING, BOOLEAN, LONG, DIM, AS, SUB, FUNCTION, SELECT, CASE, END, TYPE, PRIVATE, PUBLIC, EXIT, OPTION, EXPLICIT, COMPARE, ON, ERROR, STOP, AND, OR, XOR, NOT …

Funzioni per i file: ACCESS, APPEND, BINARY, INPUT, OUTPUT, RANDOM, CHDIR, MKDIR, RMDIR, FILES, CLOSE, EOF, FILEATTR, FREEFILE, KILL, LOC, LOF, PRINT, NAME, RESET, SEEK, SHELL, WITDH, WRITE …

Funzioni aggiuntive: BEEP, DATE, HEX, TIME …

Funzioni matematiche: ABS, ATN, COS, SIN, TAN, EXP, LOG, SGN …

Regolari tipi di dati: INTEGER, STRING …

Tipi di dati definiti dall'utente: TYPE, ARRAY …


Estensioni KBasic

Voglio che l'utente utilizzi moderne tecniche di programmazione. A tal scopo, ho aggiunte alcune nuove feature al linguaggio BASIC standard.

  • caratteristiche Object-Oriented come classi definite dall'utente e usando le migliori idee di altri linguaggi di programmazione
  • Supporto Database


Cosa posso farci?

È possibile fare molto con BASIC. Sai quale linguaggio usano per la maggiore molti veri scienziati, non scienziati del computer, per testare le loro teorie e costruire dei demo per i colleghi? BASIC. È facile da usare e ha abbastanza grafica per semplici simulazioni. Non solo VB, di solito è stato il QBasic per il vecchio DOS o una variante BASIC nel Macintosh.


Chi ne ha bisogno?

  • penso che portare BASIC in Linux ne migliorerà la flessibilità.
  • Per la maggior parte degli utenti Windows, VB è il solo linguaggio che conoscono
  • Ci sono milioni di sviluppatori VB nelle aziende
  • Se il 99% dei milioni di programmatori che passano a Linux per scrivere programmi KBasic non sono buoni, ci rimane pur sempre l'1% - quante migliaia? - scrivono codice utile.
  • È il linguaggio più semplice per i principianti, che non vogliono entrare nella programmazione a basso livello
  • Se vogliamo che Linux sia comunemente accettato, abbiamo bisogno che fornisca le stesse funzionalità che sono in voga.
  • Vincerà il sistema che ha più sviluppatori! Ignorare gli sviluppatori BASIC ne lascerà la maggior parte fuori da Linux.
  • I programmatori professionali non desiderano imparare un nuovo linguaggio ogni 3-5 anni. Vogliono che i computer facciano quello viene detto. “Non m'importa se girerà leggermente più lento del C++, fintanto che fa il lavoro di cui ho bisogno.”
  • Molte persone amano BASIC
  • È un linguaggio per le masse
  • Tutti vogliono risparmiare come le scuole, le università, sviluppatori con un po' di tempo libero, e naturalmente i venditori di software
  • Se pensi che il linguaggio BASIC sia inutile manda un e-mail a M$ e chiedigli perché continuano a sviluppare VB.


Esempi storici

“Dove sono le applicazioni?”

Ricorda la situazione con OS/2 (un cattivo esempio). Il suo “successo” ha languito per anni.

Ci sono centinaia di applicazioni VB commerciali; si usa molto il Visual Basic nel business per la sua facilità d'uso. Ora se potessero fare il porting di queste applicazioni su Linux …


Perché BASIC?

  • BASIC è il linguaggio di programmazione per principianti
  • BASIC non è sempre il migliore ma non è certamente il peggiore.
  • Non tutti hanno il tempo, la pazienza e le abilità per imparare C/C++ o Python.
  • E credo che ogni linguaggio di programmazione ha i suoi vantaggi.


Utile per Linux / Mac OS X / altri progetti?

Poiché più grande la base degli utenti Linux/Mac diventa, ci sarà più volonta da parte dei produttori hardware e software di fare il porting di software esistente, fornire drivers, o scrivere del nuovo software. Vedranno un possibile profitto invece di una semplice buona volontà di fare una donazione alla comunità Linux/Mac.

Ciò che fa Linux/Mac quello che è adesso e quello che diventerà è il risultato diretto di persone che ci lavorano. E più persone che scoprono Linux/Mac salgono a bordo, maggiori saranno le possibilità.

Penso che portare BASIC in Linux/Mac manterrà il trend di flessibilità.


Perché ho iniiziato un nuovo progetto BASIC?

  • Risposta breve: mi mancava un buon linguaggio language/IDE BASIC nel 2000.
  • Risposta lunga: ho cercato in internet e ho trovato dei linguaggi BASIC per Linux. ho guardato il codice sorgente, ma nessuno mi convinceva.

FAQ

Domanda sui limite della licenza


Q: Ho bisogno di una licenza Qt, se voglio sviluppare applicazioni open source o programmi privati?

A: No, non ne hai bisogno.


Q: Ho bisogno di una licenza Qt, se voglio sviluppare applicazioni commerciali, che non sono open source?

A: Sì, ne hai bisogno. puoi avere una licenza Qt da Trolltech. Vedi www.trolltech.com.


Q: Ho un Mac e sarò l'unico ad usare il tuo package. La mia domanda è di quante copie ne avrei bisogno? Ho una torre G5 che uso per la maggior parte del tempo e un portatile che uso solo quando sono lontanto dalla mia tower. Alcuni accordi dicono che è richiesta una sola copia fintanto che soltanto una viene usata allo stesso. Altre aziende richiederebbero due copie persino se solo una verrà usata allo stesso tempo.

A: Hai bisogno di una sola licenza, se desideri usarla nel tuo G5 o laptop.


Q: Perché KBasic non supporta controlli ActiveX?

A: Perché ActiveX gira solo in Windows e KBasic è un linguaggio multipiattaforma. Supportarlo significa attenersi solo a Windows. Cerca invece di scrivere i tuoi ActiveX usando KBasic. Ad ogni modo hai pieno accesso alle API di Windows o ad ogni DLL. Seguirà l'accesso ai file *.SO in Linux e Mac.

VB.NET vs. KBasic

QUAL'È LA DIFFERENZA TRA VB.NET E KBASIC?

Porting di applicazioni VB su Linux o Mac OS X

Vedi il confronto tra Visual Basic e KBasic, i paragrafi che seguono ti mostrano dove sono diversi in relazione al porting dei tuoi progetti. Per la prima volta nella storia dei computer, con il rilascio di Visual Basic.Net, molti sviluppatori Visual Basic sono stati lasciati indietro. VB è cambiato così tantto che non è possibile aprire e far girare del vecchio codice VB6. È richiesto agli sviluppatori Visual Basic di modificare il loro codice sorgente poiché .NET non può eseguire quel codice senza una modifica. Quindi se sei uno sviluppatore Visual Basic, farai il porting dei tuoi progetti o rimarrai al vecchio VB6. Porting significa imparare ad usare nuove parole chiavi, che in generale non funzionano come nel vecchio codice. In effetti, perché dovresti passare a .Net? Dopo aver imparato un nuovo linguaggio (.NET), che richiede cambiare significativamente la base del tuo codice sorgente, tu e il tuo progetto rimarreste legati ad un imponente “framework” e sotto Windows, avresti un programma che gira solo in Windows. Qual'è quindi l'alternativa? Invece d'imparare un nuovo linguaggio e IDE, meglio usare la conoscenza che hai gia. Usa KBasic! La maggior parte del tuo codice Visual Basic rimarrebbe intatto, come i form; la sintassi KBasic ne è compatibile al 100%, il che significa che le keyword sono identiche, includendo Mid, Left, Abs e così via.

Sorprendentemente

Sorprendentemente, in KBasic, a differenza di altri BASIC, Mid assegna una stringa come l'istruzione Mid in VB6. Quasi tutto il codice Visual Basic si traduce direttamente in quello KBasic. Ovviamente ci sono dei controlli che non funzionano allo steso modo, ma nel complesso le difference non sono nella sintassi, ma nel modello ad oggetti, che ha qualchevolta diversi controlli o nomi di proprietà. I controlli (form e checkbox e così via) di KBasic e Visual Basic sono uguali. KBasic ha più keyword built-in, per fornire compatibilità in avanti e all'indietro con VB6 e object orienting in generale. Come in VB6 le stringhe sono le stesse in KBasic, per far funzionare il vecchio codice. KBasic and Visual Basic hanno comunque le loro specifiche keyword; ad esempio Visual Basic ha Int, GoSub e Space.

I programmi KBasic girano su Linux e Mac

Non devi scrivere codice extra per simulare VB6 in applicazioni KBasic: questo è già stato fatto per te, per cui non hai problemi di perfomance come in altri BASIC. Inoltre KBasic ha Min e Max che Visual Basic non ha. Per facilitarti le cose, assicurati di spendere del tempo con il 'Manuale - Il Libro di KBasic' e i riferimenti al linguaggio. Un altro suggerimento e di testare e giocare con KBasic. Normalmente non ci sono differenze che richiedono di riscrivere il tuo codice Visual Basic; tutto il codice gira senza cambiamenti fintanto che sono coinvolti controlli e altri oggetti. Tra l'altro ci sono anche linee di codice in KBasic se ne hai bisogno. Programmi Visual Basic girano solo in Windows, quelli KBasic girano su Linux e Windows. KBasic ha un più ricco set di tipi di dati rispetto Visual Basic; pertanto ci sono tipi incompatibli tra i due. Il tipo Boolean ha dimensioni di un byte in KBasic, in VB6 occupa 2 byte. L'Integer (Long) is 32bit (64bit) in KBasic, in VB6 16bit (32bit). In aggiunta KBasic ha nuovi tipi di dati, come gli interi Int16/Int32 (che hanno dimensioni 16/32bit).

Non ci sono molte differenze

Non ci sono molte differenze su come i dati sono strutturati; entrambi offrono moduli, form e classi. Nessuna differenza neanche nelle strutture dati. Visual Basic ha tipi di dati definiti dall'utente, KBasic pure. KBasic e Visual Basic sono simili ma non uguali, KBasic fornisce alcune extra keyword e funzionalità, per usare alcune delle nuove feature object oriented ( che altri linguaggi come Java o C++ forniscono da anni). Puoi usare queste nuove caratteristiche in KBasic o solo il vecchio VB6 stuff. La gestione degli errori è più robusta e flessibile in KBasic che in Visual Basic. KBasic offre due metodi per gestire gli errori: Eccezioni, che si applicano ad un intero metodo, e blocchi Try-Catch, che si applicano a specifiche sezioni di codice; ma se vuoi utilizzare la vecchia maniera di gestione degli errori Visual Basic, il meccanismo On Error è supportato allo stesso modo. In effetti non passare a .Net! Scegli invece il porting a KBasic che ti dà tutto il supporto Windows, Mac e Linux; nessun enorme runtime, requisiti di sistema minimi, e portabilità del codice.

Almeno, prima d'iniziare con .Net, dovresti provare KBasic. Potresti scoprire che fa al tuo caso fare al tuo caso; ad ogni modo ti viene in aiuto uno strumento per convertire progetti VB.

KBasic è un compilatore BASIC alternativo

Perché KBasic è un compilatore BASIC alternativo per Windows, Mac OS X e Linux? KBasic è veramente ben fatto, è un potente linguaggio di programmazione e ha un completo IDE, e un ambiente RAD veramente professionale, molto simile a VB6. Ha centinaia di funzioni e comandi, può compilare applicazioni Linux o Mac OS X da Windows (o viceversa) ed è cross platform. È almeno disponibile per Windows XP/2000, Mac OS X e Linux/i386; genera eseguibili standalone EXE/BIN e ha un IDE di grande aiuto per i principianti. Il linguagfio KBasic includes un designer visuale per costruire GUI con elementi come finestre, form, menu e controlli data aware tra cui pulsanti, etichette e frame, textbox, pulsante radio, combo box, list box, check box… L'unica vera alternativa a VB6: KBasic nacque come progetto open source nel 2000… KBasic è uno strumento di sviluppo professionale, poiché offre tutti quegli elementi per creare prodotti professionali. KBasic fornisce una singola, facile da usare API per scrivere applicazioni GUI multipiattaforme con il look and feel (N.d.T: aspetta) appropriato per quel sistema. L'IDE veramente ben ideato e completo di tutti i tool di cui ha bisogno il programmatore tra cui un help sensitive-to-the-context (N.d.T.: sesnsibile al contesto).

*Linguaggio ben definito La struttura del linguaggio, le istruzioni e funzioni sono davvero facili da capire e la documentazione è completa e ben scritta. Giunge assieme ad un manuale stampabile di più 140 pagine che descrivono in dettaglio il gran numero di comandi, istruzioni e funzioni. Un potente e full-featured linguaggio Basic-like: completamente orientato agli oggetti e compilato in byte-code compiled. La sintassi è molto simile a VB6 e ne supprota i più comuni metodi e proprietà. È un linguaggio object-oriented e quindi usa l'ereditarietà e il polimorfismo. L'IDE offre la gestione e l'editing delle proprietà, il syntax highlighting, il completamento del codice, e il debugging del codice; tramite un debugger con breakpoint, a passo singolo, e ispezione delle variabili con visualizzazione dei valori in un'apposita finestra o posizionando il mouse sopra la variabile. La caratteristica principale di KBasic è che è stato creato epr consentire a sviluppatori VB6 d'iniziare a programmare in Linux o Mac OS X senza dover imparare un nuovo linguaggio. KBasic è un linguaggio ad alto livello per Linux, Mac OS X e Windows, costantemente aggiornato e migliorato. ====== VB6 vs. KBasic ====== QUAL'È LA DIFFERENZA TRA VB6 E KBASIC? In generale entrambi sono quasi uguali * La sintassi di KBasic è compatibile al 100% (parole chiavi come DIM, IF, SELECT CASE…) * L'IDE di KBasic è molto simile a VB6 (Form Designer, Syntax Highlighting, Auto Completion, Builtin-Help…) * KBasic supporta molti controlli, che sono molto simili a quelli di VB6 (Form, CommandButton, TextBox…) * KBasic giunge con un ricco set di oggetti VB6 (Application, …) * KBasic è in grado di creare applicazioni standalone (EXE, BIN…) * KBasic è in grado di usare molti database (in un prossimo futuro: MySQL, ODBC…) * KBasic non supporta ActiveX, poiché ActiveX è limitato a Windows Liberarsi di VB6 KBasic supporta la sintassi di VB6 al 100%. In aggiunta, molti componenti GUI li sono familiari. Ed è possibile sviluppare applicazioni GUI con la ben nota sintassi BASIC in veste moderna. KBasic giunge con un orientamento agli oggetti veramente Java-like e supporto all'indietro per VB6 e QBasic. KBasic combina la potenza espressiva di un linguaggio orientato agli oggetti come il C++ con la familiarità e facilità d'uso del VB6. Consente agli sviluppatori con una base di applicazioni VB6 d'iniziare a sviluppare in un ambiente misto Windows, Mac OS X e Linux senza dover fronteggiare una curva d'apprendimento ripida: KBasic usa il familiare paradigma di visual design e implementa pienamente il linguaggio BASIC. Perché KBasic ha successo Traditionalmente i linguaggi hanno sofferto dell'atteggiamento che dovresti abbandonare tutto quello che conosci e iniziare a sviluppare da zero con un nuovo insieme di concetti e una nuova sintassi, sostenenedo che è meglio alla lunga perdere tutto il bagaglio acquisito. Questo potrebbe essere vero alla lunga, ma nel breve tempo molto di quel bagaglio era di valore. Gli elementi di maggior valore potrebbero non essere il codice di base esistente, ma invece la base mentale preesistente. Se sei un abile programmatore VB6 e devi abbandonare tutto quello che sapevi su VB6 per adoottare un nuovo linguaggio, diventi subito molto meno produttivo per mesi, fino a che la tua mente si adatta al nuovo paradigma. Laddove se puoi usare a tuo vantaggio la tua conoscenza di VB6 ed espanderla, puoi continuare ad essere produttivo con quello che gia sai mentre ti muovi nel mondo della programmazione orientata agli oggetti. Poiché ognuno ha il suo modello di programmazione, questa mossa è abbastanza chiara dato che si evita lo sforzo aggiuntivo d'imparare un nuovo linguaggio di programmazione. Il problema dell'imparare un nuovo linguaggio è la produttività. Nessun'azienda può permettersi di perdere improvvisamente la produttività di un ingegnere del software, poiché sta imparando un nuovo linguaggio. KBasic è molto simile a VB6, non un modello di programmazione e sintassi completamtne nuovo. Ti consente di continuare a creare codice utile, applicando gradatamtne le feature mentre le impari e le comprendi. Questa potrebbe essere una delle più importanti ragioni del successo di Kbasic. In più la maggior parte del codice VB6 gira ancora in KBasic. Sorprendentemente Perché KBasic è un alternativa BASIC Windows, Mac OS X e Linux? KBasic è costruito bene, è un potentre linguaggio di programmazione e ha un completo IDE e un ambiente RAD molto simile a VB6, per cui ne è una valida alternativa. Ha centinaia di comandi e funzioni. Può compilare applicazioni in Linux o Mac OS X nella versione Windows (o viceversa) ed è cross platform. È al momento disponibile per Windows XP/2000, Mac OS X e Linux/i386 e genera eseguibli EXE/BIN standalone. Il linguaggio KBasic include un visual designer per costruire la GUI con oggetti come window, form, menu e data control quali pulsanti, etichette e frame, textbox, pulsanti radio, combo box, list box, check box… L'unica vera alternativa a VB6 KBasic iniziò nel 2000 come progetto open source… KBasic è uno strumento di sviluppo professionale, fornendo tutti quegli elementi per il design e la creazione di prodotti professionali. KBasic fornisce una singola, easy-to-use API per scrivere applicazioni GUI multi-piattaforma che adottino il look and feel proprio di quel sistema. L'IDE è stato ideato bene e si completa con tutti gli strumenti di cui necessita il programmatore tra cui un help sensitive-to-the-context (NdT.: Sensitivo al contesto). La struttura del linguaggio, le istruzioni e funzioni sono veramente semplici da comprendere e la docuemntazione è scitta bene e completa. Giunge con un manuale stampabile ben fatto con più di 140 pagine che descrivono in dettaglio il gran numero di comandi, istruzioni e funzioni. Un potente fully-featured linguaggio Basic-like: object-oriented e compilato in byte-code. La sintassi è molto simile a VB6 e il linguaggio ne supporti proprietà e metodi più comuni. È pienamente orientato agli oggetti e quindi usa ereditarietà e polimorfismo. L'IDE offre anche project managment e property editing, syntax highlighting, code completion (Ndt: completamento del codice), e modalità debugging; tramite un debugger codice sorgente con breakpoint e single stepping, step-through code (NdT: muoversi attraverso il codice), visualizzazione delle variabili in una finestra speciale o muovendo il mouse sopra la variabile nell'editor. La caratteristica principale di KBasic è che è stato creato per consentire a sviluppatori VB6 d'iniziare a programmare in Linux e Mac OS X senza dover imparare un nuovo linguaggio. Linguaggio Basic Professionale**

KBasic è un linguaggio Basic (ad alto livello) per Linux, Mac OS X e Windows ed è costantemente migliorato e aggiornato.

CODICE SORGENTE

Il codice sorgente di KBasic è copyright di Bernd Noetscher 2000 - 2007. Tutti i diritti riservsti.

Puoi usarlo sotto i termini della GNU Public License come pubblicato dalla Free Software Foundation (versione 2); se sei interessato ad usare il codice per altre licenze o sviluppo commerciale, puoi acquistare delle licenze da KBasic Software.

KBasic Software offre il codice sorgente della GUI e della VM su Windows, Mac e Linux, per scopi non commerciali. Questo comprende IDE, form designer, toolbox, property window, source code editor con syntax highlighting, code completition, bookmarks, breakpoint, source code browser, builtin help, help file generator, project window, eccetera.

Puoi ottenere una copia del codice sorgente (GUI e VM) in una forma umanamente leggibile sotto i termini della licenza GPL versione 2, gratuitamente eccetto il costo del dispositivo, imballaggio e spedizione (30€), scrivendo a KBasic Software.

it_description.txt · Last modified: 2013/04/09 22:57 (external edit)