Dengan Python, saya harus keluar dari keputusasaan - ML, jaringan saraf, skrip, di atasnya yang lebih nyaman. Namun waktu berlalu dan kecemasan tentang kecepatan kode Anda mendorong Anda ke sesuatu yang lebih cepat dan lebih dapat diandalkan.
Tugas porting kerangka GUI menyakitkan, karena Unigui universal saya hanya bekerja dari Python dan universal hanya dalam teori. API yang sangat singkat dikembangkan di dalamnya, yang seharusnya dipertahankan dalam versi Go. Selain itu, massa otomatisme untuk menghasilkan data yang diperlukan tidak tunduk pada porting, karena Go tidak memiliki kontrol urutan kompilasi, preprocessor, metaprogramming, yang menjamin pengalaman Spartan yang rumit.
Kesulitan pertama yang saya hadapi adalah ketidakmungkinan untuk langsung menetapkan bidang promouted (bersarang) di dan hanya di penginisialisasi struct. Jika struktur memiliki struktur bersarang tanpa nama, maka bidangnya dapat diakses dari akar luar di mana saja, kecuali untuk penginisialisasi. Karena apa, antara lain, seluruh gagasan dengan bidang bersarang seperti mengganti hierarki telah menjadi meragukan dan rumit untuk digunakan. Mengharuskan pengguna untuk menulis penginisialisasi bersarang yang panjang dengan jenis yang tidak perlu akan menimbulkan ketidaksenonohan. Semua struktur GUI telah menjadi datar sepenuhnya, independen, meskipun ada hierarki yang jelas di Python.
, Go , . , - , , , , , “ API”. , , . , , . . Type_ a Type(…) *Type_. , , Go .
Go Json . nil ( ), nil nil a / [ ] . , — . k, Google, , == nil, = make(0, []Any). , == nil, reflect != nil. reflect.ValueOf(ptr).IsNil() , , true! , ..
hash. . . . . .
, ? , , Any — interface{}. ! , 100% — . “ , !”
MyField int json:"myfield"
, JSON . — - . ? , , — , , . .. !
Dart _ . , Go Dart- , . . . , Google , “” . , , , , ?
, map/filter/.. , RemoveAtIndex, , 1.17 , , , .
? ! fmt.Sprintf. - — , , — “ ”.
.
— . , . , , ML- Go…
/. , , Python-a Go — . — , , , . Python - .
/ — Go. github ( ), . , Visual C++ ~20 , Edit & Continue . , Edit & Continue Go VS Code , , . --. ..
. . Go. , . , , , — .
. , Go , 20% . 70% reflect . . , . .
. ( 8000 ) Python Go.
Go:
package main
import . "github.com/Claus1/unigui-go"
func screenTest(user* User)* Screen_{
table := Table("Videos",0, nil, []string{"Video", "Duration", "Links", "Mine"},
SeqSeq(Seq("opt_sync1_3_0.mp4", "30 seconds", "@Refer to signal1", true),
Seq("opt_sync1_3_0.mp4", "37 seconds", "@Refer to signal8", false)))
cleanButton := Button("Clean table", nil, "")
selector := Select("Select", "All", nil, []string{"All","Based","Group"})
block := Block("X Block", Seq(cleanButton, selector), table)
block.Icon = "api"
return Screen(block)
}
func main(){
//register screens
Register(screenTest, "Main", 0, "insights")
Start()
}
Python:
from unigui import *
name = "Main" #name of screen to show
icon = 'blur_linear' #MD icon of screen to show
order = 0 #order in the program menu
table = Table('Videos', 0, headers = ['Video', 'Duration', 'Links', 'Mine'],rows = [
['opt_sync1_3_0.mp4', '30 seconds', '@Refer to signal1', True],
['opt_sync1_3_0.mp4', '37 seconds', '@Refer to signal8', False]
])
block = Block('X Block',
[
Button('Clean table'),
Select('Select', value='All', options=['All','Based','Group'])
], table, icon = 'api')
blocks = [block] #what to show on the screen
start('Test app')
Apakah saya akan terus menggunakan Go? Di mana saya akan turun dari kapal selam .. dan saya benar-benar ingin Crystal, Nim, dan bahasa sederhana dan canggih lainnya masuk ke produksi dan memberikan Go pendulum. Sayangnya, sejauh ini saya tidak melihat alternatif lain selain itu di ceruk produksi ringan untuk mengembangkan perangkat lunak produktif. Perdamaian!
Tautan untuk yang penasaran:
→ Pergi
→ Python