<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" version="2.0">
  <channel>
    <title>Kate Gregory's Blog - Carbon</title>
    <link>http://www.gregcons.com/KateBlog/</link>
    <description>Really Good Donut</description>
    <language>en-us</language>
    <copyright>Kate Gregory</copyright>
    <lastBuildDate>Thu, 25 Jul 2024 23:59:18 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>kate@gregcons.com</managingEditor>
    <webMaster>kate@gregcons.com</webMaster>
    <item>
      <trackback:ping>http://www.gregcons.com/KateBlog/Trackback.aspx?guid=e262eb69-f014-4ba5-ab87-bbb9f1cfd05f</trackback:ping>
      <pingback:server>http://www.gregcons.com/KateBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gregcons.com/KateBlog/PermaLink.aspx?guid=e262eb69-f014-4ba5-ab87-bbb9f1cfd05f</pingback:target>
      <dc:creator>Kate Gregory</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Day 2 at CppNorth started with Lightning Talks! But first I had to walk to the venue.
When I drive around, I'm used to a flagger making cars stop from time to time to let
a construction vehicle proceed. But this was my first sidewalk flagger:
</p>
        <p>
          <img border="0" src="http://www.gregcons.com/KateBlog/content/binary/20240723_083105 resized.jpg" />
        </p>
        <p>
The lightning talks were terrific, as they so often are. Funny, helpful, educational,
often all 3. Pier-Antoine Giguère was our high-energy MC and really shone. I don't
have any pictures because I was paying attention to all the talks!
</p>
        <p>
Then it was Chandler Carruth, one of my fellow Carbon leads, with How Designing Carbon
with C++ Interop Taught Me About C++ Variadics and Overloads, a talk I definitely
enjoyed. There was plenty of code in both languages.
</p>
        <p>
          <img border="0" src="http://www.gregcons.com/KateBlog/content/binary/20240723_111933 cropped.jpg" />
        </p>
        <p>
The audience seemed to enjoy it, too. After lunch I went to Hiding your Implementation
Details is Not So Simple by Amir Kirsh, who has a gentle teaching style I really like.
Then it was Mitigating the Intellectual Anxiety Associated with Learning the C++ Programming
Language by Emmanuel Danso Nyarko from CppAfrica. If you've ever worried about C++'s
reputation for being "the language for smart people" this talk will show you just
how real it is. The reality of what jobs are available in Africa controls what languages
people will learn. With no high-paying fintech or envy-of-your-friends gamedev employers,
why would someone take on something they think is incredibly difficult?
</p>
        <p>
          <img border="0" width="600" src="http://www.gregcons.com/KateBlog/content/binary/20240723_150656.jpg" />
        </p>
        <p>
This also applies to what is in the standard library. Seasoned C++ developers with
lots of community folks to talk to can figure out how to build a UI. Different projects
will make different choices - use Qt or some similar C++ framework, put a not-C++
frontend on a C++ engine, or some of the other choices of various age and success.
But how does someone without that community navigate those choices and get started?
Why doesn't the standard library help with that in any way at all other than "console
apps" with keyboard input and text output?<br /></p>
        <p>
Then I went to see Sohaila Ali, a very poised 17 year old with years of experience
in hackathons and other contests and conferences, talk about career from that youth
perspective. The audience was very engaged and the conversation after the talk was
lively and enlightening.
</p>
        <p>
Alas, as that talk wrapped up I had to do as I mentioned in my keynote and accept
my own limitations. After a very full day of interesting talks I needed to cut the
input for a while so I did not see Eric Wastl's keynote. I look forward to the recording,
because I heard it was good.
</p>
        <p>
One more day to go!
</p>
        <p>
Kate
</p>
        <img width="0" height="0" src="http://www.gregcons.com/KateBlog/aggbug.ashx?id=e262eb69-f014-4ba5-ab87-bbb9f1cfd05f" />
      </body>
      <title>CppNorth Day 2</title>
      <guid isPermaLink="false">http://www.gregcons.com/KateBlog/PermaLink.aspx?guid=e262eb69-f014-4ba5-ab87-bbb9f1cfd05f</guid>
      <link>http://www.gregcons.com/KateBlog/CppNorthDay2.aspx</link>
      <pubDate>Thu, 25 Jul 2024 23:59:18 GMT</pubDate>
      <description>&lt;p&gt;
Day 2 at CppNorth started with Lightning Talks! But first I had to walk to the venue.
When I drive around, I'm used to a flagger making cars stop from time to time to let
a construction vehicle proceed. But this was my first sidewalk flagger:
&lt;/p&gt;
&lt;p&gt;
&lt;img border="0" src="http://www.gregcons.com/KateBlog/content/binary/20240723_083105 resized.jpg"&gt;
&lt;/p&gt;
&lt;p&gt;
The lightning talks were terrific, as they so often are. Funny, helpful, educational,
often all 3. Pier-Antoine Giguère was our high-energy MC and really shone. I don't
have any pictures because I was paying attention to all the talks!
&lt;/p&gt;
&lt;p&gt;
Then it was Chandler Carruth, one of my fellow Carbon leads, with How Designing Carbon
with C++ Interop Taught Me About C++ Variadics and Overloads, a talk I definitely
enjoyed. There was plenty of code in both languages.
&lt;/p&gt;
&lt;p&gt;
&lt;img border="0" src="http://www.gregcons.com/KateBlog/content/binary/20240723_111933 cropped.jpg"&gt;
&lt;/p&gt;
&lt;p&gt;
The audience seemed to enjoy it, too. After lunch I went to Hiding your Implementation
Details is Not So Simple by Amir Kirsh, who has a gentle teaching style I really like.
Then it was Mitigating the Intellectual Anxiety Associated with Learning the C++ Programming
Language by Emmanuel Danso Nyarko from CppAfrica. If you've ever worried about C++'s
reputation for being "the language for smart people" this talk will show you just
how real it is. The reality of what jobs are available in Africa controls what languages
people will learn. With no high-paying fintech or envy-of-your-friends gamedev employers,
why would someone take on something they think is incredibly difficult?
&lt;/p&gt;
&lt;p&gt;
&lt;img border="0" width="600" src="http://www.gregcons.com/KateBlog/content/binary/20240723_150656.jpg"&gt;
&lt;/p&gt;
&lt;p&gt;
This also applies to what is in the standard library. Seasoned C++ developers with
lots of community folks to talk to can figure out how to build a UI. Different projects
will make different choices - use Qt or some similar C++ framework, put a not-C++
frontend on a C++ engine, or some of the other choices of various age and success.
But how does someone without that community navigate those choices and get started?
Why doesn't the standard library help with that in any way at all other than "console
apps" with keyboard input and text output?&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Then I went to see Sohaila Ali, a very poised 17 year old with years of experience
in hackathons and other contests and conferences, talk about career from that youth
perspective. The audience was very engaged and the conversation after the talk was
lively and enlightening.
&lt;/p&gt;
&lt;p&gt;
Alas, as that talk wrapped up I had to do as I mentioned in my keynote and accept
my own limitations. After a very full day of interesting talks I needed to cut the
input for a while so I did not see Eric Wastl's keynote. I look forward to the recording,
because I heard it was good.
&lt;/p&gt;
&lt;p&gt;
One more day to go!
&lt;/p&gt;
&lt;p&gt;
Kate
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gregcons.com/KateBlog/aggbug.ashx?id=e262eb69-f014-4ba5-ab87-bbb9f1cfd05f" /&gt;</description>
      <category>C++</category>
      <category>Carbon</category>
      <category>Seen and Recommended</category>
      <category>Travel</category>
    </item>
    <item>
      <trackback:ping>http://www.gregcons.com/KateBlog/Trackback.aspx?guid=d1ca1d75-df0e-4f37-94af-163a02a25cdd</trackback:ping>
      <pingback:server>http://www.gregcons.com/KateBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.gregcons.com/KateBlog/PermaLink.aspx?guid=d1ca1d75-df0e-4f37-94af-163a02a25cdd</pingback:target>
      <dc:creator>Kate Gregory</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Things are really starting to happen on <a href="https://github.com/carbon-language/carbon-lang/blob/trunk/README.md">the
Carbon project</a>. Since <a href="https://www.youtube.com/watch?v=omrY53kbVoA">Chandler
Carruth announced the project</a> two years ago at CppNorth, progress on the language
design, and the toolchain implementation, has been considerable. Until very recently,
if you wanted to try your hand at writing a little "hello world" application, you
literally had to clone or fork the repo, and then build all the toolchain and tests,
and you had to install a lot of dependencies in order to do that. 
<br /></p>
        <p>
Now, there are <a href="https://github.com/carbon-language/carbon-lang/releases">nightly
releases</a> of a tool that can compile and link Carbon code. The only dependency
I needed (on a WSL Ubuntu fresh install) was clang-16. I got that like this:
</p>
        <pre>wget https://apt.llvm.org/llvm.sh<br />
chmod u+x llvm.sh<br />
sudo ./llvm.sh 16<br />
sudo apt install \<br />
  clang-16 \<br />
  libc++-16-dev  \<br />
  libc++abi-16-dev \<br />
  lld-16</pre>
        <p>
Then I downloaded a nightly build, untar-ed it, and could compile and link Carbon
code, within the limitations of what has been implemented so far. 
<br /></p>
        <p>
If you haven't been paying attention, you might want to watch some <a href="https://github.com/carbon-language/carbon-lang/blob/trunk/README.md#conference-talks">conference
talks</a>. Or check out the Carbon Copy newsletter. You'll find the 3 issues that
have been published in the <a href="https://github.com/carbon-language/carbon-lang/discussions/categories/announcements">announcements </a>section
of the repo. <a href="https://github.com/carbon-language/carbon-lang/discussions/4068">Issue
Number 3</a> is the latest and includes sample code that runs the Sieve of Eratosthenes
to count the number of primes under 1000. (You can edit it to try a different limit,
if you like.) This shows off user defined types (with a factory function), while loops,
if, and a number of other parts of the language. 
</p>
        <p>
Of course, Carbon is nowhere near ready to use. The only UI it can do is to print
an integer. No other types, and it can't read input. There are no strings. There's
no C++ interop. A number of language features (generics, variadics, lambdas and so
on) are not implemented. It is nearly ready to evaluate. If you can't wait to start
evaluating, you don't have to. Just be aware you can't evaluate all of it yet. But
you can start, if you would like to.
</p>
        <p>
Kate 
<br /></p>
        <p>
          <br />
        </p>
        <img width="0" height="0" src="http://www.gregcons.com/KateBlog/aggbug.ashx?id=d1ca1d75-df0e-4f37-94af-163a02a25cdd" />
      </body>
      <title>Want a steady stream of Carbon information?</title>
      <guid isPermaLink="false">http://www.gregcons.com/KateBlog/PermaLink.aspx?guid=d1ca1d75-df0e-4f37-94af-163a02a25cdd</guid>
      <link>http://www.gregcons.com/KateBlog/WantASteadyStreamOfCarbonInformation.aspx</link>
      <pubDate>Wed, 10 Jul 2024 18:17:13 GMT</pubDate>
      <description>&lt;p&gt;
Things are really starting to happen on &lt;a href="https://github.com/carbon-language/carbon-lang/blob/trunk/README.md"&gt;the
Carbon project&lt;/a&gt;. Since &lt;a href="https://www.youtube.com/watch?v=omrY53kbVoA"&gt;Chandler
Carruth announced the project&lt;/a&gt; two years ago at CppNorth, progress on the language
design, and the toolchain implementation, has been considerable. Until very recently,
if you wanted to try your hand at writing a little "hello world" application, you
literally had to clone or fork the repo, and then build all the toolchain and tests,
and you had to install a lot of dependencies in order to do that. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Now, there are &lt;a href="https://github.com/carbon-language/carbon-lang/releases"&gt;nightly
releases&lt;/a&gt; of a tool that can compile and link Carbon code. The only dependency
I needed (on a WSL Ubuntu fresh install) was clang-16. I got that like this:
&lt;/p&gt;
&lt;pre&gt;wget https://apt.llvm.org/llvm.sh&lt;br&gt;
chmod u+x llvm.sh&lt;br&gt;
sudo ./llvm.sh 16&lt;br&gt;
sudo apt install \&lt;br&gt;
&amp;nbsp; clang-16 \&lt;br&gt;
&amp;nbsp; libc++-16-dev&amp;nbsp; \&lt;br&gt;
&amp;nbsp; libc++abi-16-dev \&lt;br&gt;
&amp;nbsp; lld-16&lt;/pre&gt;
&lt;p&gt;
Then I downloaded a nightly build, untar-ed it, and could compile and link Carbon
code, within the limitations of what has been implemented so far. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
If you haven't been paying attention, you might want to watch some &lt;a href="https://github.com/carbon-language/carbon-lang/blob/trunk/README.md#conference-talks"&gt;conference
talks&lt;/a&gt;. Or check out the Carbon Copy newsletter. You'll find the 3 issues that
have been published in the &lt;a href="https://github.com/carbon-language/carbon-lang/discussions/categories/announcements"&gt;announcements &lt;/a&gt;section
of the repo. &lt;a href="https://github.com/carbon-language/carbon-lang/discussions/4068"&gt;Issue
Number 3&lt;/a&gt; is the latest and includes sample code that runs the Sieve of Eratosthenes
to count the number of primes under 1000. (You can edit it to try a different limit,
if you like.) This shows off user defined types (with a factory function), while loops,
if, and a number of other parts of the language.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Of course, Carbon is nowhere near ready to use. The only UI it can do is to print
an integer. No other types, and it can't read input. There are no strings. There's
no C++ interop. A number of language features (generics, variadics, lambdas and so
on) are not implemented. It is nearly ready to evaluate. If you can't wait to start
evaluating, you don't have to. Just be aware you can't evaluate all of it yet. But
you can start, if you would like to.
&lt;/p&gt;
&lt;p&gt;
Kate 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gregcons.com/KateBlog/aggbug.ashx?id=d1ca1d75-df0e-4f37-94af-163a02a25cdd" /&gt;</description>
      <category>Seen and Recommended</category>
      <category>Carbon</category>
    </item>
  </channel>
</rss>