Stream: ideas

Topic: making a roc-lang.org homepage with GPT


view this post on Zulip Richard Feldman (Mar 26 2023 at 17:40):

so I want to try a little experiment, for fun

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:41):

the roc-lang.org homepage has been intentionally designed to reflect the current progress of the language - e.g. here's what it originally looked like: https://web.archive.org/web/20210501175857/https://roc-lang.org/

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:42):

...and here's what it looks like now: https://web.archive.org/web/20230307182654/https://www.roc-lang.org/

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:42):

so at some point in the next few months I think it'll make sense to update it again, this time making it look less thrown-together and more "ok this is a real thing but we have various caveats and cautions about its level of maturity"

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:44):

I thought it'd be fun to ask chatGPT (on GPT-4) to come up with some potential content for the next iteration, and I also thought it'd be fun to post it publicly in #ideas so people can suggest things, and I can paste them into the prompt to continue the conversation with it and see what it comes up with

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:45):

I don't have any concrete plans to necessarily use the final result, and would certainly want to edit it regardless, but I've never participated in a "group discussion where what we're doing is telling GPT to try out our ideas and seeing what it comes up with" so I thought it'd be a fun thing to try! :big_smile:

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:46):

to kick things off, I'm going to paste everything I just wrote :point_up: as a prompt to it and see what it comes up with

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:46):

oh also I'm gonna paste the contents of the current website, since I don't have access to chatGPT plugins yet, so it can't visit websites :stuck_out_tongue:

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:48):

Screen-Shot-2023-03-26-at-1.48.20-PM.png

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:48):

(I copy/pasted the entire text of the current roc-lang.org)

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:49):

Screen-Shot-2023-03-26-at-1.49.36-PM.png

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:50):

if anyone has feedback for it, or things they'd like to see it try, lmk here and I'll paste it into the chat and we'll see what it comes up with :big_smile:

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:58):

Screen-Shot-2023-03-26-at-1.55.33-PM.png

view this post on Zulip Richard Feldman (Mar 26 2023 at 17:58):

Screen-Shot-2023-03-26-at-1.58.23-PM.png

view this post on Zulip Richard Feldman (Mar 26 2023 at 18:02):

Screen-Shot-2023-03-26-at-2.01.59-PM.png
Screen-Shot-2023-03-26-at-2.02.40-PM.png

view this post on Zulip Richard Feldman (Mar 26 2023 at 18:03):

Screen-Shot-2023-03-26-at-2.02.54-PM.png Screen-Shot-2023-03-26-at-2.03.32-PM.png

view this post on Zulip Richard Feldman (Mar 26 2023 at 18:08):

Screen-Shot-2023-03-26-at-2.06.55-PM.png Screen-Shot-2023-03-26-at-2.07.06-PM.png

view this post on Zulip Richard Feldman (Mar 26 2023 at 18:08):

Screen-Shot-2023-03-26-at-2.08.43-PM.png

view this post on Zulip Richard Feldman (Mar 26 2023 at 18:13):

Screen-Shot-2023-03-26-at-2.13.12-PM.png
Screen-Shot-2023-03-26-at-2.13.35-PM.png Screen-Shot-2023-03-26-at-2.13.46-PM.png

view this post on Zulip Richard Feldman (Mar 26 2023 at 18:14):

Screen-Shot-2023-03-26-at-2.13.56-PM.png Screen-Shot-2023-03-26-at-2.14.06-PM.png Screen-Shot-2023-03-26-at-2.14.16-PM.png

view this post on Zulip Richard Feldman (Mar 26 2023 at 18:15):

well so far this has been fun but I'm not a fan of the output :sweat_smile:

anyone have any suggestions for it?

view this post on Zulip Brendan Hansknecht (Mar 26 2023 at 18:30):

Haha, that was a fun read. A lot of it is pretty terrible.

view this post on Zulip Brendan Hansknecht (Mar 26 2023 at 18:31):

Almost like chatgpt is still just mashing together data from it's training set and regularly defaults to things it has heard repeated a bunch rather than paying attention to the actually details of the original website. Feels like it has too much bias to write this.

view this post on Zulip Richard Feldman (Mar 26 2023 at 18:33):

yeah I was hoping it would respond better to suggestions

view this post on Zulip Luke Boswell (Mar 26 2023 at 21:13):

I think maybe when you said make it more casual and less enterprisey you might have confused it a little. Could you try saying write in first person, like colleague's talking about an exciting new project?

view this post on Zulip Richard Feldman (Mar 26 2023 at 22:34):

Screen-Shot-2023-03-26-at-6.33.36-PM.png Screen-Shot-2023-03-26-at-6.33.55-PM.png Screen-Shot-2023-03-26-at-6.34.15-PM.png

view this post on Zulip Brendan Hansknecht (Mar 26 2023 at 22:44):

Better, though feel pretty generic/boilerplate at this point. Maybe that is just from reading too many drafts though.

view this post on Zulip Luke Boswell (Mar 26 2023 at 23:21):

I'm really impressed with its ability to write so well! I think it writes almost too well. But agree, with Brendan a bit. I think it's exceptional though, given its only really had the website content to go off. I have been summarising my key themes and then asking Chat to expand into sentences which seems to work well. Do you have a clear idea of what information we want to convey on the front page? Who is the intended audience? What outcome do we want from people reading it etc? Maybe some of that detail could help Chat craft a better Revision. :thinking:

view this post on Zulip Ayaz Hafiz (Mar 26 2023 at 23:25):

^ I find GPT4 does better with piece-meal questions. Also, I find it does work as the conversation gets longer, as it's not able to keep the entire context around (or gets "confused" as the context gets more complex), so sometimes it's useful to reset

view this post on Zulip Ayaz Hafiz (Mar 27 2023 at 00:09):

okay it did about the same for me lol

Screenshot-2023-03-26-at-7.08.31-PM.png Screenshot-2023-03-26-at-7.08.39-PM.png

view this post on Zulip Ayaz Hafiz (Mar 27 2023 at 00:24):

LLaMA is struggling even with a fine-tune ):

Roc is intended as an end-user friendly language with every tool needed for development in the box!
\strong{It's worth noting that most other languages don't have such complete package managers and editors}, so it may be more appealing than many existing alternatives to users of other prog
ramming languages. \em{[I am paraphrasing from memory, but this is generally what I recall reading.]}
\begin{itemize}
\item [Roc language introduction page](https://ocwlabs.org/roc) - why we built Roc (in a few paragraphs). The overview states that the motivation behind creating Roc was to combine performan
ce, safety and efficiency of systems languages with ease-of-use features found in modern garbage collected programming langauges; but does not explain \em{why} this is valuable.
\item [Roc FAQ](https://roclang.github.io/faq/#2_1) -

--

We have begun developing the Roc IDE. The goal is that it will be easy for programmers to adopt Roc not only as an alternativ
e language but also becuase they don't want run times like Java or C++ runs in one second, where a Ruby script can compile and evaluate much faster than 0 seconds (albeit at the cost of less
 ergonomics).
Furthermore we aim for Roc to be more practicality rather that academically oriented. It is not meant as an academic project; it should have value outside just research useage, even though s
ometimes being a unboxing and monomorphizing language will necessitate some sort optimizations or parsershaped programming techniques (in terms of code reuse) which are often "unecessary" in
 other languages.
I'd like the website to accurately depict this nature as it is, while retainig academic value too where appropriate [end of text]

view this post on Zulip Anton (Mar 27 2023 at 08:47):

What's your LLaMa setup like Ayaz?

view this post on Zulip Ayaz Hafiz (Mar 27 2023 at 12:38):

I have the 7B and 13B parameter models set up with llama.cpp and I use one of the fine-tuners (like https://github.com/tloen/alpaca-lora/blob/main/finetune.py) when appropriate. you can add some cheaty not-correct hacks to finetune faster

view this post on Zulip Fabian Schmalzried (Mar 27 2023 at 13:42):

I also had some fun playing around with it. ChatGPT is quite good at creating generic marketing texts. Could be that there are a lot of those on the internet :thinking:
grafik.png grafik.png

view this post on Zulip Fabian Schmalzried (Mar 27 2023 at 13:43):

grafik.png grafik.png

view this post on Zulip Kevin Gillette (Apr 02 2023 at 15:37):

You could have GPT plan the next set of language features and priorities ;)

view this post on Zulip Kevin Gillette (Apr 02 2023 at 23:33):

Prompt:

What set of programming language features, and what set of deliberately omitted features, would combine to distinguish a new language as uniquely capable to solve today's largest software engineering challenges and those of the foreseeable future?

Response:

There are several features that a programming language would need to have in order to be uniquely capable of solving today's largest software engineering challenges and those of the foreseeable future. Here are some possible examples:

  1. Strong type system: A strong type system can help prevent certain types of errors before they even occur, reducing the likelihood of bugs in production code. Additionally, a strong type system can make code more maintainable and easier to reason about.
  2. Memory safety: Memory safety is a key issue in modern software engineering, especially with the rise of web and cloud applications. A language that provides memory safety guarantees can help prevent vulnerabilities like buffer overflows, null pointer dereferences, and use-after-free errors.
  3. Concurrency and parallelism support: As computing hardware continues to become more parallel, languages that provide built-in support for concurrency and parallelism will become increasingly important. This can help programmers write code that can take advantage of multi-core CPUs and distributed systems.
  4. Functional programming constructs: Functional programming constructs, like higher-order functions and immutable data structures, can make it easier to write code that is correct, maintainable, and scalable. These constructs can also help reduce the complexity of code by eliminating certain types of mutable state.
  5. Interoperability with existing languages and systems: While a new language may have unique features that make it well-suited for certain tasks, it's unlikely that it will be used exclusively in a vacuum. A language that can interoperate with existing languages and systems can be more easily adopted and integrated into existing codebases.

As for deliberately omitted features, this will depend on the design goals of the language. However, some possible examples include:

  1. Manual memory management: Manual memory management can be error-prone and time-consuming. A language that requires manual memory management may not be well-suited for modern software engineering tasks.
  2. Unrestricted side effects: Unrestricted side effects can make code harder to reason about and debug. A language that places strict limits on side effects can help improve the correctness and reliability of code.
  3. Dynamic typing: Dynamic typing can make it harder to catch certain types of errors before they occur. A language that requires static typing can help reduce the likelihood of bugs in production code.
  4. Overly complex syntax: A language with an overly complex syntax can make it harder for programmers to read and write code. A simpler syntax can make code more accessible and easier to reason about.

view this post on Zulip Kevin Gillette (Apr 02 2023 at 23:35):

It looks like out of all of that, we're only not really tackling concurrency/parallelism, and may need to make sure we don't run afoul of the "overly complex syntax" point (as a stewardship point that most languages try to keep in mind, at least).

ChatGPT in this case didn't actually point out any unique properties of languages, since many languages attempt to solve for many of these aspects.

view this post on Zulip Kevin Gillette (Apr 02 2023 at 23:37):

Little of that is unique, though. Many modern languages solve for most of those features.


That's true, many modern programming languages already incorporate some or all of these features. However, it's not just about having these features individually, but also how they are combined and designed to work together in a unique way that sets a language apart.

For example, a language could combine a strong type system with functional programming constructs and an emphasis on immutability to create a language that is uniquely well-suited for writing highly concurrent, distributed systems.

Alternatively, a language could prioritize ease of use and readability by incorporating a simple, intuitive syntax, while also providing powerful abstractions for handling complex data structures or algorithms.

Ultimately, what would make a new language uniquely capable of solving today's largest software engineering challenges and those of the foreseeable future is a combination of factors including its design, features, tooling, community support, and adoption.

view this post on Zulip Kevin Gillette (Apr 02 2023 at 23:39):

Tooling is another good callout. Historically many languages have treated that as an afterthought, sometimes requiring decades to end up in a reasonable place. Solid tooling pays dividends in terms of adoption (and I suspect, for many, tooling is a more important factor there than the more nuanced language choices, as long as the broad tradeoffs make the language suitable for a given task).

view this post on Zulip Nikita Tchayka (Aug 08 2023 at 22:45):

My two cents: I believe that the best selling point for a language comes from "feeling" it. I think that the website should have 4-5 bullet points with a very flashy hero-style banner, and then drop you right into interactive "exercises".

I like a lot how Dhall does this. Although I don't really like the design.

I also like the approach taken by https://scala-exercises.org/

I think that we should use ChatGPT for coding the website, but the pitch should come from our heart :)

view this post on Zulip Luke Boswell (Aug 09 2023 at 01:09):

If your interested in contributing to the website we are working on an update, you can see the WIP stuff here, and to make changes just a PR to roc-lang/roc here :smile:


Last updated: Jun 16 2026 at 16:19 UTC