[{"data":1,"prerenderedAt":524},["ShallowReactive",2],{"project-44856935":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":46,"post_text":49,"what":50,"said":70,"maker_in_thread":206,"shape":218,"grid":222,"attempts":487,"same_week":488,"maker_shows":43,"maker_hidden":517,"reader_version":518,"card":519},"44856935","Bolt","A super-fast, statically-typed scripting language written in C","title","Show HN: Bolt – A super-fast, statically-typed scripting language written in C","https:\u002F\u002Fgithub.com\u002FBeariish\u002Fbolt","github.com","beariish",1754848389,2025,261,95,221,3837,6,"legend","languages","scripting language","library",[21,24,25,26,27],"statically typed","embedded language","bytecode interpreter","lua alternative","mixed",-0.1,{"positive":31,"neutral":32,"mixed":33,"critical":34},14,26,2,23,65,{"performance":37,"design":38,"docs":41,"idea":44,"execution":45},{"positive":33,"critical":18},{"positive":39,"critical":40},3,11,{"positive":42,"critical":43},0,1,{"positive":39,"critical":39},{"positive":42,"critical":33},[47,39,39,43,39,43,43,39,39,43,33,43,47,43,43,43,39,39,43,43,43,48,43,39,47,43,43,39,47,39,39,39,43,39,33,39,47,47,47,48],5,4,"I've built many interpreters over the years, and Bolt represents my attempt at building the scripting language I always wanted. This is the first public release, 0.1.0!\n\nI've felt like most embedded languages have been moving towards safety and typing over years, with things like Python type hints, the explosive popularity of typescript, and even typing in Luau, which powers one of the largest scripted evironments in the world.\n\nBolt attempts to harness this directly in the lagnauge rather than as a preprocessing step, and reap benefits in terms of both safety and performance.\n\nI intend to be ",{"problem":51,"audience":57,"pricing":57,"motivation":58,"time_to_build":57,"stack":62,"openness":67,"stage":68,"team_size":69},{"value":52,"source":53,"evidence":54},"Scripting languages lack static typing and performance for embedding","maker",[55],{"id":56},"post",null,{"value":59,"source":53,"evidence":60},"Build the scripting language the maker always wanted",[61],{"id":56},[63],{"value":64,"source":53,"evidence":65},"C",[66],{"id":56},"open_source","launched","solo",{"praise":71,"objections":84,"requests":127,"questions":157,"alternatives":179},[72],{"value":73,"source":74,"evidence":75},"Good idea of adding static typing to a Lua-like language","commenter",[76,80],{"id":77,"by":78,"text":79},"44860277","slmjkdbtl","Wow a fast scripting language with normal syntax and type checking.. Really hope this can take off and be a valid Lua alternative.",{"id":81,"by":82,"text":83},"44863639","boffinAudio","Very cute language .. ``` match x { is table { print(indent_this + \"{\") for pair in pairs(x) { write(indent + \" \" + to_string(pair.key) + \": \") pretty_print_internal(pair.value,…",[85,92,105,116],{"value":86,"source":74,"evidence":87},"Not portable to MacOS or aarch64 yet",[88],{"id":89,"by":90,"text":91},"44859220","merksoftworks","This is really cool but it's not portable to MacOs or aarm64 yet, and that kind of portability unfortunately is what appeals to me about an embeddable scripting language.",{"value":93,"source":74,"evidence":94},"Performance claims unclear; slower than LuaJIT in tests",[95,99,102],{"id":96,"by":97,"text":98},"44861128","megapoliss","Run some examples, and it looks like this \"High-performance, real-time optimized, super-fast\" language is ``` ~ 10 times slower than luajit ~ 3 times slower than lua 5.4 ```",{"id":100,"by":97,"text":101},"44863035","I used brainfuck interpreter https:\u002F\u002Fgithub.com\u002FBeariish\u002Fbolt\u002Fblob\u002Fmain\u002Fexamples\u002Fbf.bolt vs lua \u002F luajit implementations from https:\u002F\u002Fgithub.com\u002Fkostya\u002Fbenchmarks Just checked…",{"id":103,"by":97,"text":104},"44864557","for nbody 500000 on my i5-9300H CPU @ 2.40GHz ``` - 487.41 millis \u002F 2364 kb ram for luajit -joff - 770.17 millis \u002F 41712 kb ram for bolt 770.17 \u002F 487.41 ~~ 1.58 cpu, not 2x, but…",{"value":106,"source":74,"evidence":107},"Uses double floats with no integer type",[108,112],{"id":109,"by":110,"text":111},"44859665","conaclos","I was quite excited by the description and then I noted that Bolt heavily relies on double floating point numbers. I am quite disappointed because this doesn't allow me to use…",{"id":113,"by":114,"text":115},"44862989","eqvinox","Why repeat JavaScript's mistake of having all numbers be floats, with no integer type? I thought that one's well known by now :(",{"value":117,"source":74,"evidence":118},"Import syntax puts symbols before module name",[119,123],{"id":120,"by":121,"text":122},"44858071","perlgeek","I like 99% of this, and the thing I don't like is in the very first line of the example: > import abs, epsilon from math IMHO it's wrong to put the imported symbols first,…",{"id":124,"by":125,"text":126},"44862995","npn","I don't understand why people still choose the syntax `import xxx from yyy` in the current year. It is a major source of complaining for languages like python or javascript,…",[128,136,143,150],{"value":129,"source":74,"evidence":130},"Support for 32-bit ARM or embedded targets",[131,135],{"id":132,"by":133,"text":134},"44857233","grodriguez100","Sounds very good, and I can see many use cases in embedded systems. But that probably requires 32-bit arm support. Is that planned ?",{"id":109,"by":110,"text":111},{"value":137,"source":74,"evidence":138},"Language server and formatting tooling",[139],{"id":140,"by":141,"text":142},"44862007","Warwolt","Looks nice! Is there any plans on a language server and formatting tooling? Usually I feel like that's bare minimum before I'd like to try and play around with a language",{"value":144,"source":74,"evidence":145},"Breakpoints or debugging server",[146],{"id":147,"by":148,"text":149},"44858932","memophysic","Looks great, I'm especially a fan of the more C and Python syntax. Lua works, but its syntax has always been bugging me. On the feature side, is there any support for breakpoints…",{"value":151,"source":74,"evidence":152},"Add a var keyword for mutable variables",[153],{"id":154,"by":155,"text":156},"44859122","tayistay","Congrats! I think this could be quite useful for me. I noticed that `let`-declared variables seem to be mutable. I'd strongly recommend against that. Add a `var` keyword.",[158,165,172],{"value":159,"source":74,"evidence":160},"How is error handling and exceptions done",[161],{"id":162,"by":163,"text":164},"44860225","je42","Nice language! I am wondering how error handling \u002F exceptions works in bolt? Quickly scanned the programming guide - but wasn't able to find it. Did i miss a section?",{"value":166,"source":74,"evidence":167},"Does it support polymorphism, generics or traits",[168],{"id":169,"by":170,"text":171},"44860755","wk_end","I might be missing this, but I'm not seeing anything about how the type system handles (or doesn't) polymorphism - generics, traits, that sort of thing. Is that in there?",{"value":173,"source":74,"evidence":174},"Is execution deterministic like Lua",[175],{"id":176,"by":177,"text":178},"44858568","k__","Awesome. Is it deterministic like Lua?",[180,188,199],{"value":181,"source":74,"evidence":182},"Lua and LuaJIT",[183,184],{"id":96,"by":97,"text":98},{"id":185,"by":186,"text":187},"44857985","haberman","I love the concept -- I've often wished that lean languages like Lua had more support for static typing, especially given the potential performance benefits. I also love the…",{"value":189,"source":74,"evidence":190},"Luau",[191,195],{"id":192,"by":193,"text":194},"44858761","debugnik","You may be interested in Luau, which is the gradually-typed dialect of Lua maintained by Roblox. The game Alan Wake 2 also used it for level scripting.",{"id":196,"by":197,"text":198},"44865361","truekonrads","I took away from benchmarks how fast Luau is...",{"value":200,"source":74,"evidence":201},"Pawn",[202],{"id":203,"by":204,"text":205},"44857984","kiririn","Nice, gives me Pawn vibes (https:\u002F\u002Fwww.compuphase.com\u002Fpawn\u002Fpawn.htm)",{"comments":207,"answered":47,"key":208},10,[209,212,215],{"id":210,"text":211},"44858028","I did experiment with a few different dispatch methods before settling on the one in Bolt now, though not with tailcalls specifically. The approach I landed on was largely chosen…",{"id":213,"text":214},"44858126","Do you think approaching the way typescript does it for Bolt is a reasonable compromise here? Bolt already supports full-module renames like ``` import math as not_math ``` So…",{"id":216,"text":217},"44857347","That's a good point, thank you. I've made a small edit to clarify.",{"commenters":219,"max_depth":47,"maker_replies":207,"first_comment_mins":220,"lifespan_hours":221},72,38,188,[223,225,227,231,234,237,241,242,245,247,249,252,256,259,262,265,268,272,274,277,280,283,285,289,290,294,297,299,301,304,307,310,311,313,314,317,320,323,327,331,334,337,341,346,349,352,354,355,358,362,365,368,371,373,376,379,382,385,388,392,394,396,398,401,404,406,410,412,414,417,420,422,425,429,433,435,437,440,441,443,447,449,451,453,454,457,459,464,468,470,473,477,481,483,485],[185,42,47,224,186,42],"project\u002Fpositive\u002Fperformance",[210,42,42,226,11,43],"maker\u002Fneutral\u002Fperformance",[228,42,39,229,230,42],"44860168","project\u002Fneutral\u002Fperformance","UncleEntity",[232,42,39,226,233,42],"44861633","nolist_policy",[235,42,39,229,236,42],"44872594","mananaysiempre",[238,42,42,239,240,42],"44858121","commenter\u002Fneutral\u002Fnone","summerwant",[192,42,42,239,193,42],[243,42,42,239,244,42],"44873871","ngrilly",[120,43,43,246,121,42],"project\u002Fcritical\u002Fdesign",[213,43,42,248,11,43],"project\u002Fneutral\u002Fdesign",[250,43,39,248,251,42],"44859658","pepa65",[253,43,42,254,255,42],"44862607","commenter\u002Fneutral\u002Fdesign","derdi",[257,43,42,254,258,42],"44862934","cess11",[260,43,43,246,261,42],"44867977","WorldMaker",[263,43,43,246,264,42],"44858476","bbkane",[266,43,43,246,267,42],"44858495","jasonjmcghee",[269,43,39,270,271,42],"44859048","project\u002Fneutral\u002Fdocs","vhodges",[273,43,42,254,121,42],"44875073",[275,43,39,248,276,42],"44860622","Tokumei-no-hito",[278,43,42,254,279,42],"44865250","masklinn",[281,33,39,270,282,42],"44857304","MobiusHorizons",[216,33,42,284,11,43],"maker\u002Fneutral\u002Fdocs",[286,33,43,287,288,42],"44860409","project\u002Fcritical\u002Fdocs","RossBencina",[109,39,43,246,110,42],[291,39,39,292,293,42],"44860241","project\u002Fmixed\u002Fdesign","devmor",[295,39,39,229,296,42],"44863574","nativeit",[298,39,42,239,293,42],"44863747",[96,48,43,300,97,42],"project\u002Fcritical\u002Fperformance",[302,48,47,224,303,42],"44861895","jeroenhd",[305,48,39,229,306,42],"44862793","amai",[308,48,43,300,309,42],"44862796","johnisgood",[100,48,43,300,97,42],[312,48,42,226,11,43],"44863336",[103,48,43,300,97,42],[315,48,43,300,316,42],"44864228","ModernMech",[318,47,43,300,319,42],"44859571","JonChesterfield",[321,47,42,239,322,42],"44859894","phire",[324,18,42,325,326,42],"44860758","other\u002Fneutral\u002Fnone","banginghead",[328,329,39,292,330,42],"44857819",7,"cookiengineer",[332,329,42,239,333,42],"44858415","zygentoma",[335,329,42,239,336,42],"44858725","driggs",[338,339,39,229,340,42],"44858260",8,"freeopinion",[342,343,43,344,345,42],"44857208",9,"project\u002Fcritical\u002Fidea","themonsu",[347,343,42,325,348,42],"44858791","IAmLiterallyAB",[350,343,42,325,351,42],"44859625","CyberDildonics",[353,343,42,325,316,42],"44864341",[113,207,43,246,114,42],[356,40,43,344,357,42],"44857448","eulgro",[359,40,39,360,361,42],"44857479","project\u002Fneutral\u002Fnone","01HNNWZ0MV43FF",[363,40,43,344,364,42],"44857851","brabel",[77,366,47,367,78,42],12,"project\u002Fpositive\u002Fidea",[369,366,47,367,370,42],"44924602","cdaringe",[169,372,39,248,170,42],13,[374,31,43,246,375,42],"44857326","thrance",[377,31,42,378,11,43],"44857372","maker\u002Fneutral\u002Fdesign",[380,31,39,248,381,42],"44860424","flakes",[383,31,42,254,384,42],"44858844","jitl",[386,31,47,387,375,42],"44859421","project\u002Fpositive\u002Fdesign",[389,390,47,367,391,42],"44862125",15,"tekkk",[124,393,43,246,125,42],16,[395,393,42,239,296,42],"44863593",[397,393,42,239,125,42],"44940792",[399,393,42,239,400,42],"44864891","naasking",[402,393,43,246,403,42],"44877703","childintime",[405,393,42,254,370,42],"44924643",[407,408,39,229,409,42],"44858159",17,"Fraterkes",[411,408,42,226,11,43],"44858174",[147,413,47,387,148,42],18,[415,413,42,416,11,43],"44859174","maker\u002Fneutral\u002Fnone",[418,413,47,419,148,42],"44875623","project\u002Fpositive\u002Fnone",[154,421,43,246,155,42],19,[423,421,43,246,424,42],"44860419","mdaniel",[426,427,47,419,428,42],"44863105",20,"sureglymop",[430,431,39,229,432,42],"44858854",21,"astatine",[434,431,42,226,11,43],"44859189",[436,431,39,229,432,42],"44859410",[89,438,43,439,90,42],22,"project\u002Fcritical\u002Fexecution",[140,34,39,360,141,42],[162,442,39,360,163,42],24,[444,442,39,445,446,42],"44862596","project\u002Fneutral\u002Fexecution","progx",[448,442,43,439,424,42],"44865240",[450,442,39,445,163,42],"44872628",[203,452,39,360,204,42],25,[132,32,39,445,133,42],[455,32,42,456,11,43],"44857249","maker\u002Fneutral\u002Fexecution",[458,32,39,360,133,42],"44862468",[460,461,47,462,463,42],"44858184",27,"maker\u002Fpositive\u002Fnone","Forgret",[465,466,47,419,467,42],"44857827",28,"Vandash",[469,466,42,360,11,43],"44857873",[471,466,47,419,472,42],"44857885","IshKebab",[474,475,39,229,476,42],"44860202",29,"capyba",[478,479,47,419,480,42],"44857211",30,"acron0",[196,482,39,229,197,42],31,[81,484,47,387,82,42],32,[176,486,39,360,177,42],33,[],[489,494,499,504,508,512],{"id":490,"name":491,"points":492,"category":493},"44846281","horizon",788,"creative",{"id":495,"name":496,"points":497,"category":498},"44878151","Building a web search engine from scratch with 3B neural embeddings",699,"web_saas",{"id":500,"name":501,"points":502,"category":503},"44855157","Engineering.fyi",470,"dev_tools",{"id":505,"name":506,"points":507,"category":503},"44878650","Omnara",310,{"id":509,"name":510,"points":511,"category":493},"44870137","Tilf",214,{"id":513,"name":514,"points":515,"category":516},"44882441","Gore",148,"games",false,"v2",{"id":520,"name":5,"line":6,"ai":517,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":521,"maker":11,"domain":10,"tier":19,"attempts":42,"strip":522,"url":9,"mix":523,"praise":73,"objection":86,"sub":21},44856935,[21,24,25,26,27],"5331311331215111331114135113533313235554",[31,32,33,34],1794036679993]