[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vr / w / wg] [i / ic] [r9k / s4s / vip / qa] [cm / hm / lgbt / y] [3 / aco / adv / an / asp / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / qst / sci / soc / sp / tg / toy / trv / tv / vp / wsg / wsr / x] [Settings] [Search] [Home]
Board
Settings Home
/g/ - Technology



Thread archived.
You cannot reply anymore.




File: comfy lain.jpg (809 KB, 1300x1244)
809 KB
809 KB JPG
What are you working on, /g/?

Last thread: >>69317719
>>
>>69325881
Lisp is the most powerful programming language.
>>
IMGUI just pushing the entire mess that is GUI state into other parts of your codebase rather than keeping it isolated.
>>
GUI programming is universally shit
>>
Ruby a comfy language.
>>
File: yuno_is_cute.png (222 KB, 1530x1212)
222 KB
222 KB PNG
I've written and am continuing to work on a wayland compositor.
Does that count as GUI programming?
>>
>>69325991
>wayland compositor.
this guy again
>>
>>69325881
I don't really know shit about programming but having a CRT and a PC case that close to a kotatsu seems like a bad idea.
>>
>>69326035
>having a CRT and a PC case that close to a kotatsu seems like a bad idea
why?
>>
>>69325998
Have you got a problem with that?
>>
File: 1469843979355.png (231 KB, 304x366)
231 KB
231 KB PNG
>>69325991
>wayland
>>
heat buildup
>>
>>69326077
I wish I could be that proud of something I wrote that I bring it up in every post I make
>>
>>69326035
>>69326084
Forced air heating is uncommon in Japanese houses, and the ~500W of a computer is not much heat.
>>
>>69326093
I'm sure it's been over a month since I've brought it up. I'm just contributing to the Gooey shitposting.
>>
>>69326084
Isn't that the point of the kotatsu thing? It's cold but its but warm under your table. Having your CRT and PC acting as space heaters seems an added bonus.
>>
whats the point in a kotatsu just use a heater
>>
File: 1542923104480.jpg (60 KB, 650x576)
60 KB
60 KB JPG
>>69326082
I seriously hope you're not using X11 in 2019.
>>
Is it immoral to write company code in Lisp and then let them realize they need a Lisper to maintain it once you leave?
>>
>>69326309
Yes; they likely didn't hire you to create problems.
>>
>>69326155
why should i use wayland instead of x11
>>
>>69326309
No; they likely hired you to solve problems.
>>
>>69326309
no, companies are meant to create jobs because not everyone can be a farmer. you'd be creating value.
not many jobs actually create value outside of artificially created problems.
clothing? we could wear rags. cars? who built the cities so we all need cars? who forced us to buy cars that require insurance? now i need insurance on my big house?
who changed the building codes so we need mcmansions or high rent?
need a job? now you need to move to the city where the only option is a rental unit designed to leech off your labor.

you were hired to create problems, do your duty anon.
>>
>>69326155
I'm saving my eyes by using redshift which doesn't work with wayland
>>
>>69326329
>>69326363
Technically I did solve the problem.
>>
>>69326371
ok im dumb, just saw, sway supports redshift now.
>>
>>69326339
Because it's better.

>>69326371
It does, though.
But saying something "doesn't work with wayland" is disingenuous. The core wayland protocol is extremely bare-bones and basically only provides some buffer sharing and a few other things.
Most of the real functionality in Wayland comes through extensions, so you can extend it to do whatever the fuck you want.
>>
File: 1ce.jpg (6 KB, 225x225)
6 KB
6 KB JPG
>>69325881
how the h*ck do you port something this complex to windows,linux,mac,win CE and fucking palm os

https://www.youtube.com/watch?v=DO_rqyt0xKQ
>>
I have C program, it has
>shared data structure
>single threaded event loop
>clients ask for thing from internal structure
Is there a pattern to manage client state etc and allow access to the internal in memory data structure without using globals? Just throw it in big struct and pass pointer around?
>>
>>69326412
in what way is it better
>>
>>69326465
why the fuck would you not use globals for a problem perfectly suited for using globals
>>
>>69326541
- Client resources are isolated
- Fully asynchronous protocol
- Buffer sharing is always done via zero-copy means, whether shared memory for CPU or dmabufs for GPU
- State is synchronised with frame submission, preventing partial-state updates for frames
- Frame submission always align with vsync, making tearing impossible
- Putting the display server and window manager in the same process allows a shitload more potential for optimisations
- Putting the display server and compositor/WM in the same process reduces a shitload of the variable delay that X11 has
>>
>>69326652
not that anon,
That sounds great, but what are the cons, because there is a tradeoff, right?
>>
>>69326652
i may have to check out wayland on my void install, i'm legitimately curious why everyone's using it, i just haven't tried it out on my own yet. thanks anon
>>
What's more important for making video games, programming or art?
>>
>>69326600
inputRaw is a file, you’ve reached the end of file in your first grepcut call, in the second call there’s nothing left to loop over
>>
I (technically) know how to program in a few different paradigms but i don’t actively understand the difference in practice. Can someone post canonical examples of how different programming paradigms result in different code and processes? The only discernible difference my conscious mind picks out is declarative vs imperative.

Next topic in my blog:
I hate python but it seems like anytime I need to do anything it’s always the quickest path (in terms of development, not performance) to a working product from nothing. Excluding quick and shell scripts using linux tools. It’s disappointing because I really don’t enjoy Python.

Specifically, I’m working on a craigslist scraper. Using anything but Scrapy would’ve been retarded. And I’ll probably be using BeautifulSoup next for further parsing. I’ve got a couple other projects that I feel similarly about. A lot of my hobby stuff involves web crawling and working with the data, and unfortunately Python alone reigns supreme in that domain.
>>
>>69326764
>but what are the cons, because there is a tradeoff, right?
- Writing clients are somewhat more complicated and boilerplatey, but overall isn't too bad if you know what you're doing.
- The compositor itself becomes a lot more complicated, as it is now fulfilling the role that the X server was before, which includes low-level graphics and input. This can lead to varying quality implementations for this type of shit, but efforts to creating libraries has alleviated this issue. For example, literally everybody uses libinput to handle input, which was originally split out from weston.
- X11's very lax security was allowing clients to get away with some dodgy stuff which they can't do as easily or at all in wayland, which appears as missing features to users. For example, a client cannot look at the contents of another client, which makes things like screenshotting and colour-pickers not work. These types of things have to be added back through wayland extensions or other compositor-specific means.
- Due to the way buffer sharing works, Wayland doesn't even try to pretend it's network capable. Note that modern X11 isn't network transparent, and actually runs like pure garbage over the network, so you're not actually losing something here. A network-capable Wayland would be more VNC-like than anything else.
- The core wayland protocol is very bare bones, so extensions are unavoidable. This isn't a bad thing, but if cooperation between different parties doesn't happen, it'll lead to a very fractured ecosystem where a lot of shit doesn't work across different compositors. Overall, this hasn't been an issue yet, but Gnome are currently the worst at this.
>>
>>69326788
>why everyone's using it
default on ubuntu
good security against keylogging
everyone believes it will replace x11
>>
>>69326861
i think i'll install wayland tomorrow and give it a go. thanks again anon
>>
>>69325905
...if you have infinite time.
>>
>>69326811
Pong says programming.

That said, unless it's text based, you need art pretty hard.
>>
>>69326811
programing is a art
>>
File: hpfl.jpg (56 KB, 2693x392)
56 KB
56 KB JPG
working on my jav downloader. since the video servers are wonky i've implemented resuming partial downloads.
>>
File: 1516012086370.jpg (45 KB, 452x364)
45 KB
45 KB JPG
>>69326367
Holy shit. You may be onto something.
>>
>>69325954
THIS!
Just having a gui triples your apps complexity. That is just not normal.
>>
>>69327216
Crazy idea, keep your GUI and your program logic separate and then there's no additional "complexity"
>>
>>69327198
dumb frogposter
>>
File: 1525244463932.png (102 KB, 828x801)
102 KB
102 KB PNG
>>69326811
Art will make or break your game, whereas even an idiot can program something that works.
>>
>>69327198
retarded frogposter
>>
>>69327268
Yandere dev is not just bad at programming... he bought his game assets from the Unity store.
>>
>>69327268
Where is this from?
>>
>>69327355
lurk moar
>>
>>69327363
No. It is your duty to explain me your stupid meme pictures.
>>
>>69326811
gameplay > art > programming (?)

Look into some of the aspects that make games fun (check out Mark Brown or something). Implementing them shoddily or not doesn't matter too much. Also, art itself can be the whole game, see ABZU or, any visual novel.
>>
My weekend project'll be a poor man's Anki written in Haskell using Brick.
>>
>>69326811
you can have a game with no art but no game with no programming
>>
File: 1546063689619s.jpg (15 KB, 230x250)
15 KB
15 KB JPG
>>69325987
Woke af

Anyone who doesn't like it simply doesn't understand it.
>>
>>69327232
This
>>
>>69327263
dumb dumb frogposterposter
>>
>>69327311
racist
>>
public int doSomething(int a, int b, String[] args) throws SomeException, SomeOtherException


holy fucking dogshit
>>
>>69327407
visual novels are interactive content, not games.

>>69326811
programming, many hideous games had great success.
>>
>>69327763
>meaningless method called "doSomething" that does not carry any idea of complexity, looks too long when adding equally meaningless parameters and exceptions
>>
I FUCKING HATE CODE INTERVIEWS
>>
>>69327763
Descriptive method signatures are better than undescriptive signatures.
>>
>>69327687
>>69327232
>>69327216
>>69325954
And now you know why Electron has exploded in popularity.
The MVC model makes sense in a web application, its only a short step away from abstracting it into a regular application.
Tada! Even worse garbage!
>>
File: javascript.jpg (41 KB, 659x317)
41 KB
41 KB JPG
>>69325954
Web apps fixed that.

>>69326811
You can not make a game with art alone unlike programming. Never forget that.
>>
&((int*) 0)[0]

Does evaluating this expression invoke undefined behavior?
>>
>>69327939
yes, you are deferencing a null pointer.
>>
>>69327898
>webapps fixed that
I wouldn't say "fixed" per se
Electron is what drove this flood of """good""" gui applications (all of which are unapologetic dogshit) and thats because webdev allows you to just import mistake overwrite yourself 2400x times without consequence because fuck speed
>>
>>69328000
electron is just a solution amongst many. Flutter is the next big thing. https://flutter.io/.
>>
>>69327939
The standard guarantees that any instances of &* will cancel out and not be evaluated.

http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf

>6.5.3.2
>The unary & operator yields the address of its operand. If the operand has type “type”, the result has type “pointer to type”. If the operand is the result of a unary * operator, neither that operator nor the & operator is evaluated and the result is as if both were omitted, except that the constraints on the operators still apply and the result is not an lvalue.
And is even directly referenced in footnote 104
>Thus, &*E is equivalent to E (even if E is a null pointer),
And going through the "transformations":
int *null = NULL; // I can't be fucked writing the cast a bunch
&(null)[0]
&*(null + 0)
&*null
null

So it's fine.
>>
>>69328029
>Made by Google
Hard fucking pass, them and their AMP proprietary web bullshit can fuck right off.
>We added a single invivisble iframe over our controls on popular websites. We optimized it out of chrome though. Not on chorme? Enjoy your slow experience!
They're god damn monopolistic fascists and I hope everything they produce fails. AMP is a good intention but abused, so it won't catch on. This is no different. Fuck google and fuck all their projects.
>>
>>69328030
Fascinating.
>>
>>69325912
>rather than keeping it isolated
Any GUI program you find will have a layer where it transfers GUI input (edit box text, clicks, key presses) into the main program. 'Worst case' processing for the program is done in things like GUI callbacks and there's virtually no separation.
Imgui is about an interface preference. The typical button example makes this the most obvious.
 if (ImGui::Button("Save")) { // do stuff }

The equivalent RMGUI interface would either push process actions into the gui layer, or have a state transfer process. It's not inherently bad. It has a much stronger separation of GUI and normal code when you just check the save button bool you've extracted or deal with a deferred call.
But that's not what imgui targets. They're not necessarily that interested in GUI even. The goal is less separation and a lack of state (from the user end of the library) makes it more easily manageable.
Imgui doesn't inherently push the state to your program either. You could easily have a makeGui() call that returns a struct with all the possible state. Or even just a dynamic array of non-default state.
It starts becoming much more like RMGUI at that point. And I would say you've lost reason to use it unless you've got very dynamic pieces of the UI.
What I find beneficial for imgui is that RMGUI has duplicate state from an interface perspective while imgui doesn't. Your editbox transfers the data to your intended location (on change ideally). In RMGUI the internal state of an edit box needs to be explicitly regarded because it's allowed to differ from your target buffer. Of course you can try to use the internal buffer of an RMGUI gui object in your processing but everyone knows that's very error prone.
>>
>>69326618
We know the answer to this. Fear mongering.

I wish there was a way to write free functions with explicit limitations to which struct fields can be accessed though. Helps protect against future bad rewrites which is what usually makes this approach a little bit hard.
>>
>>69328161
then just write a singleton class if your language doesnt support privacy settings for free functions
>>
>>69328171
Did I miss something about oop langs? Can you now set up specific private/public settings per function?
I thought it was just public (everyone sees) or private (member functions see).
That's obviously not sufficient.
I'm excited to hear what you've got for me.
>>
>>69328188
depends on the language I guess but I thought you could define privacy settings per method or field
>>
>>69328188
In something like C++ you can (ab)use nested structs and friend to get whatever visibility settings you want.
>>
>>69328211
Do you have an example?
>>69328201
I've never seen that as an explicit feature. I would want it even for normal objects.
>>
>>69326457
>how the h*ck do you port something this complex to windows,linux,mac,win CE and fucking palm os

I think being russian might be the answer
>>
>>69328256
It's just object composition, my dude.
struct Foo
{
Bar bar;
Baz baz;
};

Member functions of foo can only access the public members of bar or baz. You can break down your objects into subobjects. You can also define those structs inside the outer struct to avoid leaking those names.
It won't cost you anything, barring perhaps extra alignment.
And you also have friend, which lets a class grant access to its private methods to only one external function or class.

Nobody actually does this... But if you want to, it's there.
>>
>>69328343
I was hoping for something cleaner.
>>
>>69327893
I'm dumb, are you saying Electron is or isn't a good thing?
>>
>>69328374
If you're hoping to restrict access to member variables on a function by function basis you'll never have something clean.
And if you're using C++ in any capacity you'll never have something clean either.
>>
>>69328391
Electron is terrible but its popularity is understandable.
>>
>>69326457
Thanks mate, I wanted to get into music programs and this program looks like what I needed.
>>
It would be nice if Electron only run itself as daemon and every Electron app was a client to that daemon, but webshits can't into performance@optimisations.
>>
>>69328554
nobody cares
>>
>>69328554
It would be nice if we only used web technology for websites and not for native applications.
>>
>>69328554
Electron is only so popular because every other GUI lib sucks.
But at the same time, there's too much investment in QT and friends, so no one wants to bother trying to compete because common adoption is a nightmare.
>>
>>69328711
Electron does not do native applications, only websites.
>>
>>69328711
nodejs is not different than java, python, ruby, ...
>>
>>69329234
false
>>
>>69329224
Electron is runs a website in a native window. It's an absolute joke.
>>69329234
nodejs is a runtime and Java, Python and Ruby are languages.
>>
>>69329283
>in a native window
No, just chromium.
>>
>>69329303
You eventually end up with a native window displaying a website. What's the point in that?
>>
>>69329315
You always end up with a native window at some point. What's the point in your post?
>>
>>69329303
chromium is a native application.
>>
Why is there almost no widely used software written in Haskell?
>>
>>69329686
facebook spam protection is written in haskell and used by millions.
>>
>>69329759
By the standard people place on haskell i wonder if even python wouldn't have much widely used software.
>>
>>69329686
https://github.com/input-output-hk
>>
>>69326847
The difference is usually about what a. Works best for the project or b. What you / your team is comfy with.
There's never going to be a unicorn language or even paradigm that does everything perfectly. It depends on the situation and how much you know.
Also, if you don't like python node js and Ruby exist.
>>
>>69329686
the elm compiler is written in hs, and it's a nice lang
>>
>>69326035
that gives me an idea - you could have water cooling with the rad under the kotatsu and warm yourself with your PC
>>
how do I build an .exe in visual studio 2017 so that it doesn't require any dependencies you don't have on a clean windows install
c++ btw
>>
>>69329803
>we are an engineering company that builds cryptocurrencies and blockchains
Fintech retards need to get the fuck off my board.
>>
>>69330106
nvm figured it out
>>
>>69330346
stop pretending you're me
>>
>>69330357
sorry, won't happen again
>>
>>69330106
Compiling with /MT should (if I remember right) statically link against the C runtime:
https://docs.microsoft.com/en-us/cpp/build/reference/md-mt-ld-use-run-time-library?view=vs-2017
I think this is all you have to do...
>>
>>69330481
already figured it out, but thanks. what I did though, was change /MDd to /MTd in project properties > configuration properties > C/C++ > code generation > runtime library
>>
Started working at a big financial firm doing mainframe code. This week I got my first code moved into prod. Now the tons of transactions that occur weekly will involve in part something I wrote. Actually feels pretty damn good
>>
>>69330666
>part something I wrote
what was that?
>>
>>69330236
>Fintech
hahaha yh bitcoin is the future
>>
>>69330701
how so?
>>
>>69329759
we've already been over this a hundred times ffs!
FAANGs don't count
>>
>>69330734
>FAANGs don't count
why
>>
>one big company uses it as part of their hipster initiative
>virtually no one else does outside of specialized areas making the job market low as fuck
>brag about it
This is why I hate LispWeenies, Haskellets, and OCamlels.
>>
>>69330877
shut the fuck up
>>
>>69330877
>hipster initiative
>millions of $ involved

k tard
>>
>>69330903
Your language is for hipsters. There is no argument against this. It is the very concept of what being a hipster is to like a language like Haskell.
>>
>>69325881
What's the best way to get to learning C++? I'm not a complete beginner, but I only have bits and pieces of the language and can't wrap my head around some of the programming concepts. What would be a good language to learn beforehand?
>>
>>69330921
at the beginning, haskell was an academic programming language intended to do research in programming language theory. Why the anti spam team at facebook chose haskell is explained here https://code.fb.com/security/fighting-spam-with-haskell/
>>
Does anyone have examples of good open source C++ programs?
Something demonstrating what the committee has in mind when they say that you should use their features.
No trivial programs or libraries please I'm looking for realistic usage code primarily.
I don't really care which standard as long as it is C++11 or up.
>>
>>69330921
is it also a sign of being a hipster if you prefer to write programs that are provably correct and don't need shitloads of unit shit-tests?
>>
>>69330921
go back to starbucks and kys
>>
>>69330997
>LispWeenies, Haskellets, and OCamlels
>provably correct
>>
>>69330951
Good read anon.
Seems Haskell was about as close to idea as you could expect for what they were aiming to do.
>>
>>69330986
https://github.com/godotengine/godot
>>
>>69331019
I do purely functional scala as a hobby and apache spark for a huge enterprise. I see myriads of situations in which pure functional programming would improve our shitty situation caused by retardation of hadoop.
>>
>>69331065
what does that even have to do with the post i replied to
>>
>>69330951
>haskell was an academic programming language intended to do research in programming language theory
lazy functional programming was all that matter at first
>>
>>69331065
> as a hobby
> for a huge enterprise

does not compute

so do you have a job or not?
>>
File: 1544473509979.png (298 KB, 498x707)
298 KB
298 KB PNG
>>69331019
well all three have been used to implement provably correct languages
>>
>>69331104
what does that image even have to do with the post i replied to
>>
>>69325881
how do I post code on here ?
>>
>>69331104
:-)
>>
>>69331118
>>51971506
>To use the Code tag, book-end your body ....
>>
>>69331012
Look at how mad this fucking hipster is. Yikes.
>>
>>69331134
oof
>>
>>69331112
it's a haskellet
>>
>>69331134
LMAO
>>
I have used Docker to set up a python environment before. Now I want to do it for node but some of my modules need python to compile properly. So I figured I probably need Docker compose to run multiple containers right ? The idea is to start python > node > npm install in that order. Somehow it doesnt work the way I do it, maybe I dont understand Docker enough yet, here is my docker-compose.yaml

# docker-compose.yml
version: '3'
services:
app:
build: .
depends_on:
- python
ports:
- "8080:8080"
python:
image: python:2.7-slim
>>
>>69331182
https://medium.com/@francoisromain/getting-started-with-docker-for-local-node-js-development-192ceca18781

https://medium.com/datreeio/node-js-docker-workflow-b9d936c931e1

https://blog.codeship.com/using-docker-compose-for-nodejs-development/
>>
>>69330997
C has CompCert and various program logics proven sound with respect to its semantics.

Haskell has...
>>
>>69331055
So I started reading from main and came across
if (w <= 0 || h <= 0) {    
OS::get_singleton()->print("Invalid resolution '%s', width and height must be above 0.\n", vm.utf8().get_data());
goto error;
}

I'll be the first to admit I'm not the most committee aware person but I'm pretty confident they would prefer exceptions over goto error.
I'll keep reading. But my confidence in your claim that this is what the committee wants you to do is a bit shook.
>>
>>69331182
>install Nix
>nix-shell -p nodejs-8_x
>???
>PROFIT
>>
File: 1467830985047.jpg (9 KB, 226x258)
9 KB
9 KB JPG
>>69331182
>yaml
>>
>>69331252
>nix-shell
have you used this before?
>>
>>69326811
You can skimp on art until later.
Just work on the game.
>>
>>69331079
pure functional programming is much closer to being provably correct than python, php or any other shitty scripting lang
>>69331087
>I do apache spark for a huge enterprise
learn to read mate
>>
>>69331290
What do you mean?
I used it probably a hundred times a day
>>
>>69331369
why don't you use docker? i thought it was from nixOS

is this it?
https://www.sam.today/blog/environments-with-nix-shell-learning-nix-pt-1/
>>
>>69331369
>I used it probably a hundred times a day
what for lol?
>>
>>69327194
how good is it at finding old stuff?
>>
>>69331336
>pure functional programming is much closer to being provably correct than python
what does that even mean
you can easily prove python or php code correct
extensive use of the heap can make it a bit tricky but it's still possible

even if we were talking about automated correctness proofs your argument would still be shaky as fuck
>>
>>69331463
program?
single usage software
what that dumb fuck's trying to do with docker, but simpler and faster
>>
>>69331483
>you can easily prove python or php code correct
>easily
you just had to pick python and php for the sake of your argument, right...
>>
>>69331496
i'm sorry, i don't follow.

why are you packaging software environments 100 times a day?

can you be more explicit?

do you sell programs?
>>
>>69331513
the person i replied to used those examples, so i rolled with them
>>
>>69330986
All the Boost libraries imho.

boost.org
>>
File: AaP7fRx.gif (227 KB, 500x270)
227 KB
227 KB GIF
[made a thread about this but no replies =u=;]
Does anyone know what the best books on designing/structuring your programs are?

Context: got the micro stuff down pretty well, but feel a bit directionless when it comes to the overarching structure. I don't really trust google to give good recommendations
>>
>>69331734
Programming for Anime brainlets volume 3
>>
>>69331248
>
get_singleton

STOP
>>
>>69331514
I'm not
I simply enter a shell with the dependencies of my program, or I run one program with all its dependencies one time without installing it on my system, letting it rot in the store until garbage collection passes
>>
File: 1517667755318.jpg (97 KB, 850x602)
97 KB
97 KB JPG
>>69331734
Programming for Anime geniuses volume 1
>>
>>69331734
I don't know of many books that teach that outside of OO. I think the reason is because most programmers and programming ideologies hold the expectation that you should recognize the modules in your program yourself.
These books teach things like UML or more modern thing people don't laugh at yet.

It's a tough thing to teach because it depends on what you're doing much more than the micro level.

My approach is just to make the simplest thing I can according to my idea of the problem at the time and progressively change it. It's a lot of refactoring.
>>
>>69331822
based and lovepilled
>>
>>69331800
I'm sure it's some core guideline somewhere.
>>
>>69331887
AAAAAAAAAAAAAA
>>
>>69331734
aosabook is an interesting read
you shouldn't really expect much of it though
It doesn't really teaches you anything like a textbook would, nonetheless it exposes you on how famous softwares have been built and why.
Every chapter is written by someone different, so the quality isn't _always_ the best, and sometimes they talk about the least interesting parts of the software, and they also often don't go enough into details; imho.
BUT it's a very easy read and one I can only recommend.
>>
>>69331887
I haven't heard of such a guideline.
Only Java and C# programmers fall for the singleton meme. Please fuck off with that dumb shit in C++.
You have namespaces and free functions for fucks sake. Use them. This source code is NOT good C++ learning material. In fact so far it's been a good example of what not to do in C++.
>>
File: disgust.png (156 KB, 318x427)
156 KB
156 KB PNG
>>69331734
>[=u=;]

Everything you write comes down to, "if someone else were to read this code, would they understand how it works?"

If you ever picked up a book on design patterns, the first thing they would tell you is that everyone uses them, and they arise naturally from codebases.
People give these patterns names, and this helps them communicate their problems and solutions to other engineers.
Taking this logic to the extreme, microservices are a design pattern. OOP, functional programming and other paradigms are design patterns.

What you're missing is a lack of understanding of design patterns, the theory behind their usage in certain situations, and the critical thinking necessary to apply these solutions to the problems that you're facing.

>tl;dr hurrdurr it's exactly like everything else you've ever done in life
>>
>>69331940
I'm joking. Of course it's a terrible idea and not something those old geezers would suggest.
Anon just presented it in response to >>69330986
>>
>>69331960
>the first thing they would tell you is that everyone uses them
wrong
*everyone* uses recursion schemes though, including your Poo Designers
>>
>>69331992
>wrong
wrong
go ahead and tell me that you can define the subset of features and thus mathematically prove whether a programming language is functional or not lmao
it's a design pattern like any other and designers are free to fuck it up by making a 56% mongrel of functional and imperative like Python
>>
>>69331960
>the first thing they would tell you is that everyone uses them
No its usually 'everyone should be using these because it solves the problem the right way'.
Usually they're limited in presenting options. The options presented are usually negative examples (when presenting exceptions you show bad examples of error codes). Because they're writing a book promoting a style rather than presenting a neutral perspective on programming.
>>
>>69332037
wtf are you talking about street shitters
>>
>>69331483
shaky? pure and total functions in strongly typed languages have much better constraints on what can happen in runtime than scriptshits have and that's not something that can be discussed to be honest. it's even more obvious if you completely ditch subtyping and use a hindley-milner type system as possible implementation spaces for your functions shrink even more. less stupid shit you can do in your implementations, less stupid bugs someone else will have to fix later.
>>
>>69332046
Well, I can't help that everyone is cargo culters.
>>69332100
sounds like you should stop trying to sound smarter than you are :^)
>>
>>69332141
haskell doesn't check totality
>>
in Java, can you get away with programming as if you are doing it in C

basically focus on using arrays and primitive types
>>
>>69332208
are you picking on it being a turing-complete language and hence encoding non-termination or just bitching about -fwarn-incomplete-patterns?
>>
>>69332229
Yes, but you're just gimping yourself. primitives are autoboxed into Objects.
>>
>>69332229
Yes. You just treat your main function as if it were a C main function and ignore the standard library for the most part.
You will not be able to work with most code bases like this.
>>
>>69332229
That's retarded, use C.
>>
>>69332320
That's retarded, use Rust.
>>
>>69332229
Yes but why would you
>>
>>69332255
That's the mentally ill idris poster. In a moment, he will link you to some documentation about state machines.
>>
>>69332229
No. Java has no concept of references, everything is passed by value (even references to objects) so the ONLY way to mutate things inside of other functions without just reassigning by return value is to utilize objects.
>>
>>69325905
What about smalltalk?
Also general thoughts on smalltalk (especially pharo which seems to be the most active implementation right now)?
It seems to be very hard to find out if it's reasonably fast for actual use outside scripting (because it's not practical as a scripting environment except if using gnu smalltalk, in which case it's still too verbose for that). VW smalltalk is shitty and slow unlike pharo/squeak/newspeak for example, but it's what the benchmark games use.
Smalltalk is the only language I know of that offers true image-based programming (lisp and forth offer the same idea, but unlike in smalltalk, you can't e.g. share your exact active image with others, version precise objects in the image and send that alone to others, etc., so you're still building up a program rather than an image during development, even though you can actuate changes on the image in realtime including in production).
>>
>>69332344
but if i pass a reference to an array to a method in java, and say myarray[0] = 333
then i just mutated the first element, didn't i

just because the reference is passed by value, doesn't mean that what it refers to is impossible to change
>>
>>69332342
Never used idris before, I'm a scala guy.
>>
>>69332344
So you can't do double indirection?
>>
>>69332413
That's because arrays are objects in java, they're not primitives
>>
>>69332458
well both arrays and objects must be basically contiguous memory so ..
literally pointers to memory in the java vm or am i wrong

where can i even read about this stuff, and should i?
>>
>>69325954
but normies pay well for it nigger
>>
>>69332480
I'm not him but if you really care that much, you want to understand java bytecode, which is something that almost nobody does.
People program in Java for cross-platform compatibility and the ability to forget about a certain class of bugs like dangling pointers.
I don't think there's anything to gain from programming in Java in a c-style even if you could.
>>
>>69332480
You have primitive types and reference types but you cannot just ask for the address of a primitive value or an object reference to pass it around. You have to allocate a whole new object with said value/reference as a field (like int vs. Integer).
>>
>>69332480
if you are going to apply low-level concerns to your java programming you are going to have bad time. the only case in which you should be concerned about this stuff is when you have to write low-latency stuff for one of those fintech companies / banks that went java and then were forced to do retarded zero-allocation policies to avoid STW pauses of the GC. go read about the java memory model to get a better understanding of what JVM does underneath if you want, it's a good read. you can also go and read JVM anatomy park blog series by Shipilev, it's quite enlightening.
>>
>>69332480
>literally pointers
Don't exist in java. You can make the argument that they exist within the VM itself but you have absolutely no ability to get at them, so they effectively aren't real.

This all probably sounds like nitpicking but it's a very, VERY important distinction to make, because if you don't it will inevitably bite you in the ass when you think you're handling "references" to other things but you aren't and your program falls apart because of failed mutations or unexpected ones.
>>
>>69332229
Consider using this instead.
https://github.com/davidar/lljvm
>>
>>69332580
GraalVM handles LLVM bitcode via Sulong just well though: https://github.com/oracle/graal/tree/master/sulong
>>
>>69332580
nah
i'll just learn java, i kinda actually like it in some ways
i'm warming up to the idea of interfaces and all that
kinda cool
List<type> mylst = new LinkedList<type>();
or you can choose some other implementation of the interface


there's just so many features though
>>
>>69332679
interfaces are great, you should use them heavily, and preferentially to class inheritance
>>
>>69332679
>>69332715
this. disregard inheritance, use interfaces and composition. the only sensible use case of inheritance is an abstract class used as a base in template pattern. everything else is heresy.
>>
>>69332738
>>69332715
How do you do GUI without inheritance?
>>
>>69331960
design patterns are still "micro stuff" though. they're solutions to small-domain problems. they don't touch on the macro architecture.

for the lack of a better comparison, compare designing a single junction to designing the whole network of roads for a city.
>>
Why are there no comprehensive real-world comparisons of manual memory management vs a tracing GC? Should be as simple as taking a program written with manual memory management and replacing new with gcnew and removing all references to delete.
>>
Why do people consider golang "not harmful" like C is "not harmful"?
>>
>>69332932
It's called Rust.
>>
>>69332975
What?
>>
>>69332932
there are
a gc can be faster than manual memory management on average, for example if you allocate tons of small objects again and again
>>
>>69332994
especially with TLABs
>>
C -> retarded
C++ -> even more retarded
Go -> retarded by design
Ada -> verbose
Rust -> SJW
Pascal -> dead
Fortran -> are you serious?
Java -> Pajeet
Javascript-> onions-tier
Python -> babby-tier
Lisp -> the most powerful language (that nobody uses)
Clojure -> hipster
Haskell ->hipster
Forth -> hope you like your stacks

No language is ever good enough for you.
>>
>>69332994
If you use malloc each time, yeah. If you use a pool or something then no.
>>
>>69333042
Popularity is a meme. Program in your shitlang of choice for money, then use whatever the fuck you want at home. God tier: start your own business and force your employees to use your language.
>>
>>69332932
Because manual memory management implies you've structured your program to manage memory. Personally I believe it a trivial task but that's due to style and other choices.
A lot of GCd programs are effectively unmanaged in this way which has its own flaws. But those aren't GC flaws inherently.
Also what would be the point? If we've got a manually managed program _that works_ the GC should ideally do nothing. We could compare that but he conclusion will just be that GC is worse because it had to walk a graph to reclaim the information you threw away when you removed deletes. Which isn't fair.
>>
>>69332932
Because manual memory management can be done in a bazillion ways and in microtasks it's always possible to microoptimize in ways in no way comparable to realistic scenarios. For example, you can take a GC, observe its behavior, and mimic it by hand, and that's still manual memory management. But it's not what you would come up with by default.

Still, there are benchmarks that show that manual memory management is usually significantly slower than GC. The problem with GC is that you can't make them ensure your video game is running at 60 fps by tuning memory usage carefully without using workaround-tier solutions involving minimizing allocations (something you would still do with manual memory, but you're more flexible there because you know for a fact whether or not you're deleting in the critical section, whereas you don't know that for gc).
Moreover, parallel gc's are super hard and there are extremely few languages that 1- have parallel gc's, let alone 2- allow parallel code given that the language is gc'd.
Python's GIL has been the source of much grief to python users, but it's in no way the only language that does that. Turns out almost no language doesn't have that problem.
That's another example of how complicated it is to properly benchmark these things.
>>
what do you fags do when all useful software has already been made?
>>
How should I prepare for technical/code interviews?
I did my first two last week and fucked them both, and I'm afraid that it might not be something you can just learn and get better at, but just a natural mindset some people have. Anyone else know what I mean?
>>
>>69333042
P H A R O
H
A
R
O
>>
>>69333090
Make useless softwares
>>
>GC faster than MMM
At least post your sources.
Sounds like you've got an unmanaged heap.
>>
>>69332890
you're thinking too rigidly. not everything in the world is dictionary definitions and textbooks--there is an overarching concept of design patterns that transcends fields.
A "road" is just an embellished and compacted strip of land and like anything else made by man, are designed to solve a problem we have.
A basic part of problem solving is that you -don't- solve them at the macro-scale. Solutions compose to form larger solutions which become your "macro architecture".
Microservices architecture was invented in early Google history to solve the specific problem of every team of engineers wanting to develop programs in their own hipster language of the week, and so they invented the common interface of protobuf to handle the differences.
Likewise, it was invented at Netflix to solve the specific problem of maintaining constant availability of services by reducing the scope of their services to the smallest logically possible, so that they could have tons of identical services running at the same time, ensuring redundancy in the event of failure. And so they created ChaosMonkey to prove and validate their efforts.

Just think about the specific problem that you need to solve, the constraints produced by the problem, and the architecture will unravel itself naturally.
>>
>>69333042
No u! JavaScript rocks!
>>
>>69333090
>when
Haha, anon catch up.
>>
>>69332932

>>69333080
Adding to this, here are some relevant papers:
https://people.cs.umass.edu/~emery/pubs/04-17.pdf
https://people.cs.umass.edu/~emery/pubs/gcvsmalloc.pdf
(Pay attention to the date).
Emery is worth following if you're interested in the topic.
>>
>>69333095
Smalltalk -> unlearn everything
>>
>>69333150
Is that really a bad thing though?
>>
>>69333105
here's a secondary source
http://www.hboehm.info/gc/

>Performance of the nonincremental collector is typically competitive with malloc/free implementations. Both space and time overhead are likely to be only slightly higher for programs written for malloc/free (see Detlefs, Dosser and Zorn's Memory Allocation Costs in Large C and C++ Programs.) For programs allocating primarily very small objects, the collector may be faster; for programs allocating primarily large objects it will be slower. If the collector is used in a multithreaded environment and configured for thread-local allocation, it may in some cases significantly outperform malloc/free allocation in time.

and the primary source(at least i assume it's primary, haven't actually read it thb)

>http://www.eecs.northwestern.edu/~robby/uc-courses/15400-2008-spring/spe895.pdf
>>
>>69333070
>god-tier
>>
>>69332932
Because that's not how it works. You structure programs differently if you use a GC rather than MMM. For starters, if every memory allocation you do is a raw call to malloc, you're doing it wrong.
>>
>>69333160
Fair enough. Those are more reasonable claims than those made here in the thread.
>>
>>69333070
>god-tier
or google-tier: let everyone use whatever language they want and glue the bits together using protocol buffers.
>>
>>69333042
>readability is bad
>>
>>69333183
Doesn't that make it very hard to maintain?
>>
>>69325881
intercepting system calls with ptrace to write a sandbox in C
>>
>>69333160
And yet note that boehm is not a true SOTA GC doing the best GC could, because it is designed to work in hostile (to GCs) environments (it is also why it's stuck as being conservative, which is trash).
>>
>>69333070
100% agree with this post
>>
>>69333203
Each team independently maintains their own stuff and the protocol usually doesn't require much maintenance, so typically it doesn't, at that scale.
>>
>>69333108
>you're thinking too rigidly
just trying not to go the too vague "everything is x" way of defining things

design patterns in the usual sense apply to specific small-scale problems. "microservices" is indeed an example of macro-scale architecture, it's not a concept you apply to one problem, but a whole solution that resolves many smaller problems.

now the question is, are there any resources that go deeper into the macro-scale solutions like microservices, monoliths, etc. in at least enough detail to compare pros/cons and give examples of proper use, rather than go the "[newest y] is the best, everything else is obsolete" route.

>A basic part of problem solving is that you -don't- solve them at the macro-scale
>Just think about the specific problem
yes, but the question is not about specific problems (which are indeed micro scale)
>>
>>69333203
google was never known for making developer-facing applications that were easy to use or maintain.
everything has finicky knobs and bells and whistles that you need to finely tune because they target the planet-scale.

And anyways, that just means that if it comes down to it you can just make a new thing since the API surface would be relatively tiny and the effects should be well documented.
>>
>>69333229
ah, I see. I assumed something totally different. That's a pretty comfy setup then.
>>
>>69333158
>Is that really a bad thing though?

Smalltalk the language is actually quite interesting, the problem is that it comes with his own operating system and way of doing things.

I've used it for a while and it breaks a lot of conventions that developed after GUI went mainstream. Also the GUI is a bit primitive, and you can break it easily (buttons fall outside the window boundaries when you resize, things like that).
All in all it looks like a nice experiment, but not a quality product. Paradoxically the old Smalltalk 80 VM, while more limited, had the feel of a more cohesive and professional product.
Smalltalk is stuck in the past unfortunately, I know there are effort to modernize it, but they will not go anywhere.
>>
>>69333230
>are there any resources that go deeper into macro-scale solutions
>in enough detail to compare pros/cons and give examples of proper use
No.
You will never find it.
People dedicate their whole careers in trying to do it right.
They never do, but they always improve.
And then there are a class of people who don't have a clue and just copy other people and claim they understand the implications of what they're doing.

This is why conferences are big business. Developers are more than happy to share what worked for them, what didn't work for them.
It's your JOB to come up with these solutions, by yourself.
Nothing that anyone invents is necessarily a perfect fit for you and your constraints.

Just go watch some conference talks on youtube about how they design their applications, what works, what doesn't, and try to figure out what you can take away from it that may suit the problems that you're trying to solve.

And don't forget that you're not alone. Macro-architecture isn't something that junior developers should have to give a shit about.
>>
>>69333200
Ada is readable, but it's a bit too complex (better than C++ though). There is probably a better language hiding inside Ada.
>>
>>69333299
Please stop insulting my waifu.
>>
>>69333270
Which of them have you tried and how long ago was that?
And have you looked at newspeak, which tries to be a completely different thing but based on the same ideas?
>>
>>69333042
>Fortran -> are you serious?
Modern (90 +) versions of Fortran are very readable and even comfy to use.
>>
>>69333328
Ada is a slut.
>>
does haskell or python have more powerful list comprehension?
>>
>>69333386
no
>>
>>69333370
>Which of them have you tried and how long ago was that?

Squeak a few years ago, and also Pharo.

>And have you looked at newspeak, which tries to be a completely different thing but based on the same ideas?

I've heard of it, but I haven't tried it
>>
>>69333417

ty
>>
>>69333373
>Modern (90 +) versions of Fortran are very readable and even comfy to use.

Can you program anything other than numeric stuff with it?
I mean in practice.
>>
File: registergraph.png (7 KB, 278x212)
7 KB
7 KB PNG
(1/?)

Working on my virtual architecture for 8-bit game dev. Haven't started implementing anything yet, still just trying to piece together how I want it to work.

Does it look reasonable so far? I don't know much about embedded stuff, I'm doing this because I want to, not because I think I can.

Interrupts:
>0x0: none
>0x1: NMI (trap)
>0x2: timer (trap)
>0x3: halt (trap)
>0x4: bad opcode (trap)
>0x5: bad operand (trap)
>0x6: double-fault (trap)
>0x7: triple-fault (trap)
>0x8: keyboard has data
>0x9: mouse has data
>0xa: joypad has data
>0xb: vblank
>0xc: audio buffer needs data
>0xd: resume from halt (i.e. something has happened and we care that it's happened but we neither know nor care what it was)
>0xe: mmio to/from disconnected device (trap)
>0xf: reset

Word (8-bit) registers:
>a: accumulator
>f: flags
>b, c: parameters
>dx, dy, dw, dh, dvx, dvy, dt, ds, ex, ey, ew, eh, evx, evy, et, es: game object registers (x and y are position, w and h are dimensions, vx and vy are the velocity vector, and t and s are for object type and object status, respectively, the meaning of which depends on the specific game you're writing)
>h, l: long accumulator
>fh, fl: offsets from fp necessary to hop to the higher or lower stack frame, respectively -- for limited cooperative multitasking
>ins: fetched instruction
>imm: fetched immediate
>isr: interrupt service register
>icr: interrupt control register
Register pairs: bc, dxy, dwh, dvxy, dts, exy, ewh, evxy, ets, hl, fhl

Pure double-word registers:
>id, ie: memory indices of the objects currently loaded into the other game object registers
>sp: stack pointer
>fp: frame pointer
>pc: program counter
>ra: return address
>timr: timer
>limm: fetched long immediate
>irr: interrupt request register
>imr: interrupt mask register

Callee-saved registers: fhl, pc, ra, bc, id, ie, f&isr, imr (the pc is callee-saved because embedding it in the stack frame enables cooperative multitasking)
>>
>>69333486
why all the traps?
>>
>>69333442
As far as I know it is a general-purpose language with strong emphasis to numerical calculations.
To answer your question: No.
>>
>>69333422
I see. Sad to hear it's too amateurish for actual use. Image-based programming is the coolest shit ever but it seems only smalltalk, common lisp (mit scheme is a joke but it's the only one with restarts, which is a mandatory prereq for this), and forth (factor?) seem to have it, with only smalltalk going all in on it.
Good programming languages never ever.
>>
>>69333442
I wrote this simple insertion sort in F95
! Insertion sort for integer array "a" of size "n".
subroutine ArrayInsertionSort(a, n)
implicit none
integer, dimension (:), intent(inout) :: a
integer, intent(in) :: n

integer :: i, j
integer :: current_pos
integer :: new_pos

do i = 2, n
current_pos = a(i)

! Searching for new location for a(i):
new_pos = i
do while ( (new_pos > 1) .and. (a(new_pos-1) > current_pos) )
! Moving the previous cell backwards
a(new_pos) = a(new_pos - 1)
new_pos = new_pos - 1
end do

a(new_pos) = current_pos
end do
end subroutine
>>
Any good books on programming ASM?
>>
>>69333486

(2/?)

Instruction layout: soooaaap
>s: [s]igned/unsigned
>o: [o]pcode
>a: [a]ddressing mode
>p: which [p]arameter

Addressing modes:
>0b000: immediate to b (p=0) or c (p=1)
>0b001: b (p=0) or c (p=1) to a
>0b010: a to l (p=0) or bc to hl (p=1)
>0b011: l to a (p=0) or hl to bc (p=1)
>0b100: immediate to l (p=0) or long immediate to hl (p=1)
>0b101: d (p=0) or e (p=1) to hl
>0b110: hl to d (p=0) or e (p=1)
>0b111: l (p=0) or hl (p=1) to system function

Opcodes for addressing modes 0b000-0b100 inclusive:
>0b000: nop
>0b001: add (don't need sub due to signed/unsigned bit)
>0b010: mul
>0b011: div (and mod)
>0b100: nor (universal gate ergo no dedicated and/or/not/etc needed)
>0b101: sft (shift; positive or unsigned -> left, negative signed -> right)
>0b110: str (store)
>0b111: lod (load)

Opcodes for addressing mode 0b101 (d/e to hl):
>0b000: getxy
>0b001: getwh
>0b010: getv
>0b011: getts
>0b100: geti
>0b101: angle (of motion)
>0b110: touch (collision checking, s-bit = whether d is rectangle or ellipse, p-bit = same but for e)
>0b111: dist (shortest distance to collision, s-bit and p-bit have same meaning as in touch)

Opcodes for addressing mode 0b110 (hl to d/e):
>0b000: setxy
>0b001: setwh
>0b010: setv
>0b011: setts
>0b100: vproj (do vector projection on velocity)
>0b101: rot (set angle of motion)
>0b110: stobj (also updates object index register)
>0b111: ldobj (also updates object index register)

Opcodes for addressing mode 0b111 (hl to sys):
>0b000: int
>0b001: imask (xor's imr)
>0b010: jz
>0b011: push (s=0 allocates a new stack frame spanning hl or l double-words, s=1 actually pushes values into the allocated stack frame)
>0b100: pop (s=0 pops an entire stack frame, s=1 pops one double-word or word from the current stack frame into hl or l)
>0b101: stkmv (hops up (positive) or down (negative) a given number of stack frames without actually changing the stack)
>0b110: bkswp (swaps the buffer of the h'th device to its l'th bank)
>0b111: timer
>>
>>69333764
https://software.intel.com/en-us/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4
>>
>>69329814
>There's never going to be a unicorn language or even paradigm that does everything perfectly
I know, I'm just saying my conscious mind doesn't pick up on the difference between paradigms other than functional vs imperative. I don't open up python and go "ok now this is object orientated, so...". Like, I imagine my subconscious might be aware of the subtle differences, but I think mostly I'm just trying not to "break the rules" of the language, not program in an "object orientated fashion" or anything. Hopefully this imparts my problem well enough.

do node js and ruby have similar library and framework support? probably not.. I think there's a reason why python is number 1 for """"data science"""""
>>
>>69333516
'cause A) those all seemed like things that would happen in direct response to execution of instructions as opposed to as a preemptive signal from a device, and B) i have no idea what i'm doing lololol

>>69333805

(3/3)

devices:
>0x0: none
>0x1: cpu ("self")
>0x2: ppu
>0x3: apu
>0x4: bios rom
>0x5: ram
>0x6: rom cartridge
>0x7: rw cartridge (i thought it would be cool to be able to do a thing where you have two "cartridges" "plugged in," one containing the program running and another to be manipulated by that program, and you could use this to, for example, write a game rom for helping non-programmers write game roms)
>0x8: keyboard
>0x9: mouse
>0xa: joypad
>0xb: screen
>0xc: speakers
>0xd: battery and sram (if i ever wanted to make this an actual physical thing for some ungodly reason which will obviously never happen then the battery piece would be relevant, but as it stands, the sram is the part that matters)
>0xe: date clock (i don't remember what the fuck this was supposed to mean??????)
>0xf: serial

and that's all i've planned out so far, can anyone redpill me on how wrong my idea of how this stuff works is?
>>
>>69333805
>(xor's imr)
wait no i didn't get this quite right, xor is not the word i'm looking for
what i meant to say is that every set bit in the parameter corresponds to a bit toggled in the imr and every unset bit in the parameter corresponds to a bit in the imr that stays the same
>>
File: 1516257291213.png (1.02 MB, 1920x1080)
1.02 MB
1.02 MB PNG
>>69325881
I've seen a couple coding questions asking for you to satisfy a constant space requirement and I'm not sure what that means. Is your algorithm/structure only supposed to use the same amount of memory every time it's called?
>>
>>69333892
Literally the only reason anyone uses python is muh libraries. If it weren't for that, python is completely unsuitable for shit like datascience. Even performance aside (which does matter), losing hours of work because of a typo in a variable name (color = 'red' ... plot(data, colour) or often worse: color = 0 ... if x == 3: colour = 1... print color) is insane (as a sidenote, having to preemptively save all intermediary results for defense against this is even more insane, as is thinking that loading content for data science is free).
>>
>>69333981
That's correct. You need to brush up on asymptotic complexity.
>>
>>69334061
Yeah I will, we covered it in my courses but we never talked about space complexity really, only time.
>>
>>69334119
Same concept.
>>
>>69333981
a lookup table is constant in time and memory, but a lookup table could be as small as a single byte or larger than the amount of memory your computer is capable of addressing.

Likewise, an algorithm which allocates more or less memory depending on how the parameters changes is obviously not constant in space.
>>
>>69333042
Ada -> dead
Lisp -> dead
Fortran -> dead
>>
>>69334182
>Ada -> dead
i wouldn't say so, but it is on a decline because it's pretty niche nowadays.
>>
>>69325881
Learn Haskell to complement my years of C++ knowledge. It's neat so far, but I feel like I've just been exposed to most of its ideas through C++ already (albeit in a less "pure" way).
>>
>>69334182
They have their niches
>>
>>69334182
>Ada -> dead
Still used industry. See Adacore for all their partners still. Also Ada was never "popular" or "mainstream". It was very much a closed system of expensive proprietary compilers and software until Adacore even came around which was well after C, C++, Java all took off.
>Lisp -> dead
I've seen people say it's still used in Google maps, and other places but I don't care enough to check. I'd imagine since Franz is still going strong they have enough business and customers using CL.
>Fortran -> dead
Academia still uses it, although it is in a decline.
>>
>>69334123
>>69334124
Neat, thanks!
>>
>>69333988
Yeah I hate python as well but I stand by what I said. If I want to get a working project completed ASAP, python is going to be the fastest in terms of development time. it sucks, but it's true
>>
File: 1546312425881.png (322 KB, 568x526)
322 KB
322 KB PNG
>>69325954
Look into immediate mode GUIs.
>>
>>69334307
wait till you get to extensions like rank n types and gadts
>>
>>69334426
>cluttering your render code with GUI shit and state
>>
>>69325954
preach brother

god I fucking hate gui programming, why is it so convoluted?
>>
>>69325954
Lisp need fix than
>>
prog board return when?
>>
>>69326811
Usually Design,music and design level teams for AAA begins 10 times bigger than programming team

And indies spend a lot more design/animation over programming(unless you made own game engine)
>>
>>69334371
>Comment from the peanut gallery: the post.
>>
>>69334515
hopefully never
>>
>>69334444
>draw_ui();
>cluttered
>>
Redpill me on computational geometry.
>>
>>69334560
>implying that's all of it
We already went over this last night. Nuklear and Dear ImGui is shit. Especially if you do anything feature packed.
>>
ITT we drop hard truth bombs. I'll start

Javascript is defacto lingua franca of modern world.
>>
>>69334589
Ada spelled backwards is Ada
>>
>>69334416
Yes, I'm saying it's a really bad thing because of all the wasted efforts that will keep snowballing into this dead-end language (why use X when python does everything with just an import? Now I need Y, I'll just build it in python since that's what I use).
It fucks with the possibility of getting actually valuable languages up to speed and an extreme amount of development resources end up being used to circumvent or work around python in the first place rather than building competent tools, which is nasty and wasteful.
>>
I refuse to believe anyone from this thread actually makes anything. It's basically inane language wars and no real content in here.
>>
>>69334605
you first, retard
>>
>>69334578
Link? Also what's good then?
>>
>>69334615
Qt & wpf are the only sane choices for large programs desu
>>
>>69334589
Every language without convenient metaprogramming facilities is essentially broken.
>>
>>69334605
I'm working on solving cancer. It's part of my phd thesis. I also made a toy compiler because I was bored. It compiles an s-expr language to C++ and allows "direct interop" (e.g. I can subclass a C++ class in my language and that works).
>>
>>69334615
Read from >>69324469 to the end of the thread. /dpt/ actually had a civilized discussion.
>>
>>69334562
Geographica databases,videogames, physics simulations,raytrace and more ...
>>
>>69334645
>It compiles an s-expr language to C++

Is it available somewhere?
>>
next episode

>>69334703
>>69334703
>>69334703
>>
we can move now
>>
311
>>
>>69334890
>>69334869
>>69334706
Invalid thread, you stupid fuck. It was posted before the 310 bump limit, and retroactively bumping this thread doesn't make it valid.
I hope the janitors delete that shit.
>>
>>69334602
I see where you're coming from and agree - to an extent. But as a person with limited time and things to do, I'm not wasting my precious time on autistic ideals like developing a Julia framework or library to replicate Python's existing functionality - but thank god for those that do, because I'd so much rather use a more suitable language for any given task. Maybe I will down the road when I'm more skilled and can bust things out quicker, but right now Python is simply the undisputed champion of practical and pragmatic programming for a developer. I agree that this sucks, and I know I'm contributing to the problem, but IMHO that meta circumstantial fact is truly the problem - Python is building a great wall of uncomfiness around the garden of programming.
>>
>>69335103
>wasting my time developing Julia framework or library
just to be clear, I prefer to waste my time shitposting on 4chan
>>
>>69334615
Writing your own.
>>
>>69335509
According to the link, IMGUI is the best thing ever and RMGUI is dogshit.
>>
>>69328188
Privacy settings for global functions doesn't make any sense.

Declare the function only where you want it to be accesable.
>>
File: OOo.jpg (18 KB, 480x534)
18 KB
18 KB JPG
>>69333988
Which is exactly why Julia is going to be the Python killer.
>absorbs all python libraries
>fast
>better GUI support
Feels extremely good man.
>>
>>69336895
>Julia
>already dead and shit name



Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.