Topic: Impressioni su Falcon  (Letto 296 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Tungsteno

  • python erectus
  • ***
  • Post: 181
  • Punti reputazione: 0
    • Mostra profilo
    • Sviluppo Videogiochi
Impressioni su Falcon
« il: Agosto 31, 2018, 20:18 »
Salve ragazzi,

come da titolo qualcuno ha usato/usa questo micro-framework?
falconframework

Mi piacerebbe avere alcune impressioni (pro/con) su questo package che ho scoperto da poco e su cui o fatto fatica a trovare recensioni complete nel web, soprattutto in relazione ad altri framework più diffusi.

So che molto probabilmente me lo chiederete, quindi vi anticipo:
Cosa devi farci?
Diciamo che la mia intenzione era quella di usarlo come back-end per applicazioni Android e Windows molto elementari e con poche utenze connesse contemporaneamente (nell'ordine delle centinaia massimo) per progetti IoT e domotica principalmente... ma non fatevi intimidire da queste due parole poco usate ma molto in voga in questo periodo e sparate pure tutto quello che avete acquisito su  questo framework. ;)

Grazie mille a tutta la community.
« Ultima modifica: Agosto 31, 2018, 20:36 da Tungsteno »

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.103
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re:Impressioni su Falcon
« Risposta #1 il: Settembre 03, 2018, 09:05 »
Ciao,

Non ho mai usato finora Falcon framework. Pare che abbiano abbastanza compagnie dietro a supportare lo sviluppo, che è sempre positivo per un nuovo progetto che non sia un giocattolo :)

Ad ogni modo, è un microframework, per cui devi valutare quanto tempo vuoi spendere implementando ogni minimo "middleware", come lo chiamano loro. E poi trovi il bug qui, ops, bisogna usare il workaround, poi per questo non c'è la soluzione, quindi bisogna reinventarsela, oppure usiamo questa lib di questo tizio online che l'ultima PR su github è stata chiusa l'anno scorso.

Fossi in te ci farei una prova. Male non può fare. Un'alternativa più seria sarebbe Flask e la cosa positiva è che se Falcon non ti convince puoi passare a Flask facilmente, almeno da quello che ho visto.

Facci sapere!

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.821
  • Punti reputazione: 9
    • Mostra profilo
Re:Impressioni su Falcon
« Risposta #2 il: Settembre 05, 2018, 20:41 »
Uhm, probabilmente è ok. Certo per un progetto così (relativamente) giovane quello che veramente mi piacerebbe vedere è un supporto nativo per asyncio. Tutto il resto, per carità, magari va benissimo. Ma se dovessi provare un microserver "giovane", forse farei prima un pensiero su qualcuno di quelli indicati qui https://github.com/timofurrer/awesome-asyncio#web-frameworks. Altrimenti, avrei bisogno di una ragione specifica e motivata per abbandonare Flask.

Offline Tungsteno

  • python erectus
  • ***
  • Post: 181
  • Punti reputazione: 0
    • Mostra profilo
    • Sviluppo Videogiochi
Re:Impressioni su Falcon
« Risposta #3 il: Settembre 16, 2018, 23:45 »
@RiPol e @ Markon,
Capisco benissimo il vostro punto di vista e giustamente "quello che funziona non si cambia".  Ho dato un'occhiata veloce anche a Flash ed effettivamente sembra un framework implementato bene e molto più leggero del suo concorrente maggiore Django (che ho scartato a priori proprio per questo fattore), quindi per un'applicazione IoT è sicuramente più indicato secondo me. Tra l'altro spulciando i packages  di Armibian ho notato che risulta già incluso Flask, quindi mi conviene usare direttamente quello.

In ogni caso vi ringrazio ragazzi per le risposte e l'aiuto che mi avete dato nel farmi prendere una decisione :)

Offline bebo

  • python erectus
  • ***
  • Post: 173
  • Punti reputazione: 0
    • Mostra profilo
    • bebo_sudo's personal homepage
Re:Impressioni su Falcon
« Risposta #4 il: Settembre 18, 2018, 10:52 »
effettivamente sembra un framework implementato bene e molto più leggero del suo concorrente maggiore Django (che ho scartato a priori proprio per questo fattore), quindi per un'applicazione IoT è sicuramente più indicato secondo me.
Non capisco, vuoi mettere questo web framework su degli apparecchi da IoT? Non sono un esperto, ma di solito l'IoT prevede che questi oggetti (che non hanno grande mobilita' come sistema operativo o applicazioni installabili) parlino con un server, in modo da delegare al server il grosso del lavoro o perche' il server tenga memoria di cio' che registrano dei sensori, etc. E di solito si parla in REST, in modo da separare il piu' possibile il client dal server. In questo modo il server lo puoi scrivere in quello che vuoi: python (django, flask, falcon), java, assembly, puoi usare strategie serverless, etc.
Tornando al discorso: django e' piu' pesante perche' aiuta molto il programmatore che sviluppa per il web "con interazione umana", in quanto fornisce codice boilerplate molto comodo (primo tra tutti l'autenticazione, il CSRF, il templating), ed alcune di queste cose forse non servono per IoT.

Un paio di anni fa, per imparare un po' di django e giocare con un po' di sensoristica, avevo fatto un progettino con degli ESP8266 e django: https://git.io/sest
ovviamente il codice adesso mi fa pena, e non userei django nudo e crudo, ma almeno Django REST Framework, o forse Flask. Pero' magari ti puo' servire di ispirazione.
« Ultima modifica: Settembre 18, 2018, 10:55 da bebo »

Offline Tungsteno

  • python erectus
  • ***
  • Post: 181
  • Punti reputazione: 0
    • Mostra profilo
    • Sviluppo Videogiochi
Re:Impressioni su Falcon
« Risposta #5 il: Settembre 19, 2018, 19:46 »
effettivamente sembra un framework implementato bene e molto più leggero del suo concorrente maggiore Django (che ho scartato a priori proprio per questo fattore), quindi per un'applicazione IoT è sicuramente più indicato secondo me.
Non capisco, vuoi mettere questo web framework su degli apparecchi da IoT? Non sono un esperto, ma di solito l'IoT prevede che questi oggetti (che non hanno grande mobilita' come sistema operativo o applicazioni installabili) parlino con un server, in modo da delegare al server il grosso del lavoro o perche' il server tenga memoria di cio' che registrano dei sensori, etc. E di solito si parla in REST, in modo da separare il piu' possibile il client dal server. In questo modo il server lo puoi scrivere in quello che vuoi: python (django, flask, falcon), java, assembly, puoi usare strategie serverless, etc.
Tornando al discorso: django e' piu' pesante perche' aiuta molto il programmatore che sviluppa per il web "con interazione umana", in quanto fornisce codice boilerplate molto comodo (primo tra tutti l'autenticazione, il CSRF, il templating), ed alcune di queste cose forse non servono per IoT.

Ciao Bebo, si esatto tendenzialmente è proprio questo che ho in mente di fare, solo che il mio hardware comprende OrangePi Zero, Wemos che usa un ESP8266 (penso come il tuo) e un modulo (che ancora devo ben definire) che possieda un chip atmega (arduino uno r3... mega 2560). Ovviamente non è detto che verranno usati tutti assieme, ma  tutto dipenderà dal tipo di risorse hardware e GPIO che il sensore/periferica richiederà per funzionare correttamente.

Un paio di anni fa, per imparare un po' di django e giocare con un po' di sensoristica, avevo fatto un progettino con degli ESP8266 e django: https://git.io/sest
ovviamente il codice adesso mi fa pena, e non userei django nudo e crudo, ma almeno Django REST Framework, o forse Flask. Pero' magari ti puo' servire di ispirazione.

L'ho visto velocemente e sembra un bel progettino IoT e direi che ad occhio pare ben fatto per una cosa iniziata come passatempo.
Comunque toglimi una curiosità, ho notato che l'ultimo aggiornamento risale a circa 6 mesi fa, e mi chiedevo se lo stai ancora portando avanti oppure lo hai lasciato morire?
« Ultima modifica: Settembre 20, 2018, 12:34 da Tungsteno »

Offline bebo

  • python erectus
  • ***
  • Post: 173
  • Punti reputazione: 0
    • Mostra profilo
    • bebo_sudo's personal homepage
Re:Impressioni su Falcon
« Risposta #6 il: Settembre 19, 2018, 22:25 »
Citazione
Comunque toglimi una curiosità, ho notato che l'ultimo aggiornamento risale a circa 6 mesi fa, e mi chiedevo se lo stai ancora portando avanti oppure lo hai lasciato morire?
Stiamo andando un po' offtopic, pero' diciamo che il progetto l'ho imbastito io, mi piacerebbe continuarlo, ma ho poco tempo libero. Ma come dicevo prima, andrebbe riscritto al 90% il backend.